您的位置:首页 > 其它

第二届2011年国信蓝点杯软件设计大赛预赛的试题9

2017-03-13 22:49 399 查看
package four;

import java.util.Scanner;

/*

 * 程序设计(满分17分)

方阵的主对角线之上称为“上三角”。

请你设计一个用于填充n阶方阵的上三角区域的程序。填充的规则是:使用1,2,3….的自然数列,从左上角开始,按照顺时针方向螺旋填充。

例如:当n=3时,输出:

1 2 3

6 4

5

当n=4时,输出:

1  2 3 4

9 10 5

8  6

7

当n=5时,输出:

  1  2  3  4  5

 12 13 14  6 

 11 15  7

 10  8

  9

程序运行时,要求用户输入整数n(3~20)

程序输出:方阵的上三角部分。

要求格式:每个数据宽度为4,右对齐。

要求考生把所有类写在一个文件中。调试好后,存入与考生文件夹下对应题号文件夹中的“解答.txt”中即可。相关的工程文件不要拷入。请不要使用package语句。

另外,源程序中只能出现JDK1.5中允许的语法或调用。不能使用1.6或更高版本。

 */

public class t9 {
public static void main(String args[]){
Scanner input = new Scanner(System.in);
int a = input.nextInt();
int[][] s = new int[a][a];
int j = 0;
int k = a;
for(int i = 1;i<=(a*a-a)/2+a;j++,k--){
for(int x = j;x<k-j;x++){
s[j][x] = i++;
}
for(int x= j+1;x<k-j;x++){
s[x][k-x-1] = i++;
}
for(int x = (k-j)-2;x>j;x--){
s[x][j] = i++;
}
}
for(int i = 0;i<a;i++){
for(int x = 0;x<a;x++){
if(s[i][x]!=0)
System.out.format("%4d",s[i][x]);
}
System.out.println();
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: