/**
*
*/
package 马敏;
/**
* @author 敏儿
*@file:数字旋转方阵.java
*@package:马敏
*@project:马敏
*@date time:2017年10月14日下午1:33:53
*@location:https://github.com/1508010207/mamin.git
*/
import java.util.Scanner;
public class 数字旋转方阵 {
private static int n;//方阵的行和列
private static int[][] a;//保存方阵的值
private static int number=1;//填充的数字
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
a=new int[n][n];
f(0,n-1);
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
System.out.printf("%4d",a[i][j]);
}
System.out.println();
}
}
public static void f(int begin,int size)
{
if(size<0)
return;
if(size==0)//最后一圈只剩下一个元素
{
a[begin][begin]=number;
return;
}
int h=begin,l=begin;
for(int i=1;i<=size;i++)
{
a[h][l]=number;
number++;
h++;
}
for(int i=1;i<=size;i++)
{
a[h][l]=number;
number++;
l++;
}
//向上
for(int i=1;i<=size;i++)
{
a[h][l]=number;
number++;
h--;
}
for(int i=1;i<=size;i++)
{
a[h][l]=number;
number++;
l--;
}
f(l+1,size-2);
}
}
/** * */ package 马敏; /** * @author 敏儿 *@file:数字旋转方阵.java *@package:马敏 *@project:马敏 *@date time:2017年10月14日下午1:33:53 *@location:https://github.com/1508010207/mamin.git */ import java.util.Scanner; public class 数字旋转方阵 { private static int n;//方阵的行和列 private static int[][] a;//保存方阵的值 private static int number=1;//填充的数字 public static void main(String[] args) { Scanner sc=new Scanner(System.in); n=sc.nextInt(); a=new int[n][n]; f(0,n-1); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { System.out.printf("%4d",a[i][j]); } System.out.println(); } } public static void f(int begin,int size) { if(size<0) return; if(size==0)//最后一圈只剩下一个元素 { a[begin][begin]=number; return; } int h=begin,l=begin; for(int i=1;i<=size;i++) { a[h][l]=number; number++; h++; } for(int i=1;i<=size;i++) { a[h][l]=number; number++; l++; } //向上 for(int i=1;i<=size;i++) { a[h][l]=number; number++; h--; } for(int i=1;i<=size;i++) { a[h][l]=number; number++; l--; } f(l+1,size-2); } }