编写程序,输出n阶“螺旋方阵”。“螺旋方阵”,是由1到n2的自然数构成的矩阵,1位于第一行第一列,从1开始按顺时针方向依次排列各元素。 样例输入:3 样例输出: 1 2 3 8 9 4 7 6 5package string_pracitice; import java.util.Scanner; public class SpiralDemo2 { public static void main(String[] args) { new SpiralDemo2().run(); } public void run(){ Scanner in = new Scanner(System.in); int n = in.nextInt(); int value[][] = new int[n][n]; int direction = 1; // 1向右,-1向左,2向上,-2向下 int x=0; int y=0; for(int i=0;i<n*n;i++){ if(value[y][x]==0){ value[y][x]=i+1; if(direction==1){//向右 if(x+1<n&&value[y][x+1]==0){ x++; }else{ direction=-2; y++; } }else if(direction==-2){//向下 if(y+1<n&&value[y+1][x]==0){ y++; }else{ direction=-1; x--; } }else if(direction==-1){//向左 if(x-1>=0&&value[y][x-1]==0){ x--; }else{ direction=2; y--; } }else{//向上 if(y-1>=0&&value[y-1][x]==0){ y--; }else{ direction=1; x++; } } } } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ if(j == 0) System.out.print(value[i][j]); else{ System.out.print(" "+value[i][j]); } } System.out.println(); } } }
运行结果如下:
</pre>
螺旋方阵的实现
最新推荐文章于 2022-03-26 11:27:10 发布