题解 | #尼科彻斯定理#
尼科彻斯定理
https://www.nowcoder.com/practice/dbace3a5b3c4480e86ee3277f3fe1e85
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int n = in.nextInt();
int square = n*n;
int array[] = new int[n];
if(n%2==0){ //输入的数是个偶数
square = square+1; //保证起始值是个奇数
for(int j=n/2;j<n;++j){ //以n^2为分界线的右半边数据
array [j] = square;
square=square+2;
}
square = n*n-1; //保证起始值是中间的那个奇数-1的值
for(int i=n/2-1;i>=0;--i){ //以n^2为分界线的左半边数据
array [i] = square;
square=square-2;
}
}else{
for(int j=n/2;j<n;++j){ //包括n^2的右半边数据
array [j] = square;
square=square+2;
}
square = n*n; //保证起始值是又为n*n
for(int i=n/2-1;i>=0;--i){ //包括n^2的左半边数据
array [i] = square-2;
square=square-2;
}
}
for(int x=0;x<array.length-1;x++){
System.out.print(array[x]+"+");
}
System.out.print(array[array.length-1]);
}
}
查看14道真题和解析