对于一个 n 行 m 列的表格,我们可以使用螺旋的方式给表格依次填上正整数,我们称填好的表格为一个螺旋矩阵。例如,一个 4 行 5 列的螺旋矩阵如下:
1 2 3 4 5
14 15 16 17 6
13 20 19 18 7
12 11 10 9 8
要求编程实现:输入两个整数M和N,输出一个M*N的螺旋矩阵。
import java.util.Scanner; class temp { public static void main(String[] args) { int i=0,j=0; System.out.print("请输入M和N : "); Scanner sc=new Scanner(System.in); int M=sc.nextInt(); //sc.close(); Scanner sd=new Scanner(System.in); int N=sd.nextInt(); //sd.close(); int[][] a=new int[100][100]; for(int k=1;k<=N*M;k++){ a[i][j]=k; if((j0)&&(a[i][j-1]==0)){ j--; } else { while(a[i-1][j]==0){ i--; k++; a[i][j]=k; //System.out.println("i:"+i+"t"+"j:"+j+"t"+"k:"+k+"t"+"a[i][j]:"+a[i][j]+"t"); } j++; } } for(int p=0;p 2. (程序设计题)
import java.util.Scanner; class temp { public static void main(String[] args) { int[][] a=new int[100][100]; boolean[][] flag=new boolean[100][100]; int i=0,j=0; System.out.print("请输入M和N : "); Scanner sc=new Scanner(System.in); int M=sc.nextInt(); Scanner sd=new Scanner(System.in); int N=sd.nextInt(); int val=1; for(int p=0;p0)&&(flag[i][j-1])){ j--; } else { while(flag[i-1][j]){ i--; k++; System.out.print(a[i][j]+" "); flag[i][j]=false; //System.out.println("i:"+i+"t"+"j:"+j+"t"+"k:"+k+"t"+"a[i][j]:"+a[i][j]+"t"); } j++; } } } } 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)