ACM题目(倒蛇阵填数)求java解法
发布网友
我来回答
共1个回答
热心网友
按照题目要求编写的倒蛇形矩阵的Java程序如下
import java.util.Scanner;
public class A {
public static void main(String[] args) {
int i,j,k,n,m,count=1;
Scanner sc=new Scanner(System.in);
int N=sc.nextInt();
while(N!=0){
if(N>=10)
System.out.println("请输入小于10的正整数");
else{
int a[][]=new int[N][N];
if(N%2==0){
n=N/2;
}else{
n=N/2+1;
}
for(i=n-1;i>=0;i--){
for(j=N-i-2;j>=i+1;j--){
a[i][j]=count++;
}
for(j=i;j<N-i;j++){
a[j][i]=count++;
}
k=N-i-1;
for(j=i+1;j<N-i;j++){
a[k][j]=count++;
}
for(j=N-i-2;j>=i;j--){
a[j][k]=count++;
}
}
for(i=0;i<N;i++){
for(j=0;j<N;j++){
System.out.printf("%-3d",a[i][j]);
}
System.out.println();
}
System.out.println();
}
N=sc.nextInt();
count=1;
}
}
}
运行结果