class Sum
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入你要回旋的边长: ");
int n=sc.nextInt();
int k=0;
int x,y;
int[][] arr = new int [n][n];
for (x=0;x<=(n+1)/2-1 ;x++ )
{
for ( y=x;y<=n-x-1 ;y++ )
{
arr[x][y]=++k;
}
for ( y=x+1;y<=n-x-1 ;y++ )
{
arr[y][n-x-1]=++k;
}
for (y=n-x-2;y>=x ; y--)
{
arr[n-x-1][y]=++k;
}
for (y=n-x-2;y>x ;y-- )
{
arr[y][x]=++k;
}
}
for (x=0;x<n ;x++ )
{
for ( y=0;y<n ;y++ )
{
System.out.print(arr[x][y]+"\t");
}
System.out.println();
}
public class Test {
public static void main(String[] args) {
int SIZE = 5;
int arr[][] = new int[SIZE][SIZE];
int i, j, k = 0, n, m;
n = SIZE;
m = n/2+n%2;//获取循环次数
for (i = 0; i < m; i++) {
// 顶边,从左到右,行不变列变
for (j = i; j <= n - i - 1; j++)
arr[j] = ++k;// 输出1、2、3、4、5、、、17、18、19、、、、25
// 右边,从上到下,行变列不变
for (j = i + 1; j <= n - i - 1; j++)
arr[j][n - i - 1] = ++k; // 输出5、6、7、8、9、、、20、21
// 底边,从右到左,行不变列变
for (j = n - i - 2; j >= i; j--)
arr[n - i - 1][j] = ++k; // 输出10、11、12、13、、、22、23
// 左边,从下到上,行变列不变
for (j = n - i - 2; j >= i + 1; j--)
arr[j] = ++k; // 输出14、15、16、、、24
}
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++){
System.out.print(arr[j] + "\t");
}
System.out.println();
}
}
} 作者: 胡帅 时间: 2015-4-13 07:27
赞一个,不错