对于一个 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++;
}
}
}
}



