如果是偶数
则多循环一次
如果输入的是奇数则循环
package com.yl.sf;
import java.util.Scanner;
//螺旋问题
public class Test1 {
Test1() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字");
int t = sc.nextInt();
test(t);
}
@SuppressWarnings("unused")
private void print(int n[][]) {
for (int i = 0; i < n.length; i++) {
for (int j = 0; j < n[i].length; j++) {
System.out.print(n[i][j] + "\t");
}
System.out.println();
}
}
private void test(int n) {
int array[][] = new int[n][n];
int intA = 1; // 初始化
// n==4
int time = 0;
if (n / 2 == 0) {
time = n / 2;
} else {
time = n / 2 + 1;
}
for (int i = 0; i < time; i++) {
// 左到右
for (int j = i; j < n - i; j++) {
array[i][j] = intA++;
}
// 上到下
for (int k = 1 + i; k < n - i; k++) {
array[k][n - 1 - i] = intA++;
}
// 右到左 3,3
for (int l = n - 2 - i; l >= i; l--) {
array[n - 1 - i][l] = intA++;
}
// 下到上
for (int m = n - 2 - i; m >= 1 + i; m--) {
array[m][i] = intA++;
}
}
print(array);
}
public static void main(String[] args) {
Test1 t = new Test1();
}
}
结果