java,编程实现输入一个数字,输出该数字的回旋数字
例:
若输入3,输出的回旋数字如下:
1 2 3
8 9 4
7 6 5
若输入4,输出的回旋数字如下:
1 2 3 4
10 11 12 5
9 8 7 6
请问怎么用编程java语言实现 展开
//最呆板的实现方式,一行一行来实现
public class HuiXuan {
public static void main(String[] args) {
new HuiXuan().huiX(8);
}
public void huiX(int num){
//按照二维数组的方式处理 行固定是3行
int[][] array = new int[3][num];
//第一行
for (int i = 0; i < num; i++) {
array[0][i] = i+1;
}
//最后一行
int index = 1;
for (int i = num-1; i >=0 ; i--) {
array[2][i] = (num+1)+(index++);
}
//中间行
int midd = num*2+1;
for (int i = 0; i < num-1; i++) {
array[1][i] = ++midd;
}
array[1][num-1] = num+1;
//循环打印
for (int i = 0; i < 3; i++) {
for (int j = 0; j < num; j++) {
System.out.print(" "+array[i][j]+" ");
}
System.out.println();
}
}
}
实现结果如下
package com.zx.test;
import java.util.Scanner;
/**
*纯手打 望采纳
*/
public class MAIN {
//回旋数字是一个类似与反着写的6 而数字本身在数的a[0][n]
/**
* 思路:就是一个反着的数字6一样的东西
* 我们定义一个temp 然后循环走完这个‘6’让temp把每个位置的值都赋上,然后自增
*
* */
public int[][] getNum(int n){
//定义要存储回旋数字的二维数组
int [][] arr=new int[3][n];
//arr[0][n-1]就是回旋数字本身
int temp=1;
for(int i=0;i<n;i++){
arr[0][i]=temp++;
}
for(int i=1;i<3;i++){
arr[i][n-1]=temp++;
}
for(int i=n-2;i>-1;i--){
arr[2][i]=temp++;
}
for(int i=0;i<n-1;i++){
arr[1][i]=temp++;
}
return arr;
}
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("Please Input A Number: \n");
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
int arr[][]=new MAIN().getNum(n);
for(int i=0;i<3;i++){
for(int a=0;a<n;a++){
System.out.print(arr[i][a]+" ");
}
System.out.println();
}
}
}