有关JAVA.方阵的主对角线之上称为“上三角”。请你设计一个用于填充n阶方阵的上三角区域的程序。填充的规则是:使用1,2,3….的自然数列,从左上角开始,按照顺时针方向螺旋填充。例
方阵的主对角线之上称为“上三角”。
请你设计一个用于填充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)
我做了一个小时,终于大功告成啊!有成就感,上代码
import java.util.Scanner;
public class Trangle {
public Trangle(){
System.out.println("请输入数字3--20");
Scanner sc=new Scanner(System.in);
int input=sc.nextInt();
if(input<3||input>20){
System.out.println("数字范围错误");
return;
}
//定义矩阵
int[][] matrix=new int[input][input];
//初始化矩阵为-1,后面用于输出判断
for(int i=0;i<input;i++){
for(int j=0;j<input;j++){
matrix[i][j]=-1;
}
}
//三角形的三条边,横着斜着竖着
int status=1;
//三角型循环的次数
int time=0;
//当前的数字
int index=1;
//我们知道这个三角矩阵是有一个一个大小不同的三角形
//组成的,1234,567,89.他们的长度是递减的,线面循环的i即表示边长
for(int i=input;i>0;i--){
//表示横着的边
if(status==1){
//在每个相应的坐标上把当前数字index写进去
for(int j=0;j<i;j++){
matrix[time][time+j]=index;
index++;
}
status=2;
}else if(status==2){//斜着的边
for(int j=0;j<i;j++){
matrix[time+1+j][input-2-time*2-j]=index;
index++;
}
status=3;
}else if(status==3){//竖着的边
for(int j=0;j<i;j++){
matrix[input-2-time*2-j][time]=index;
index++;
}
status=1;
time++;//表示从外到内三角形的个数
}
}
//输出我们处理好的这个矩阵
for(int i=0;i<input;i++){
for(int j=0;j<input;j++){
//是-1的地方就不要输出了
if(matrix[i][j]==-1){
break;
}
if(matrix[i][j]<10){
System.out.print(matrix[i][j]+" ");
}else if(matrix[i][j]<100){
System.out.print(matrix[i][j]+" ");
}else{
System.out.print(matrix[i][j]+" ");
}
}
System.out.println("");
}
}
public static void main(String[] args){
new Trangle();
}
}
强烈建议楼主采纳最佳答案哟!可以看一下效果图
一物体放在一倾角为A的斜面上,向下轻轻一推,它刚好匀速下滑.一物体放在一倾角为A的斜面上,向下轻轻 2020-05-17 …
四棱锥V-ABCD中,底面ABCD是边长为2的正方形,其他四个侧面都是侧棱长为5的等腰三角形,则二 2020-06-03 …
一物体以速度v冲上斜面,最后又沿斜面下滑到原位置.一物体以速度v冲上斜面,最后又沿斜面下滑到原位置 2020-06-08 …
三角形定则,为什么v=v2-v1?v1、v2不在一条直线上,为什么要用三角形定则,答案要分析透澈, 2020-07-02 …
证明:(1),若|E|>=|V|,则G=包含圈(2),若|E|>=|V|+4,则G包含俩个边不重的 2020-07-05 …
下列说法不正确的是()A.某微粒空间构型为平面三角形,则中心原子一定是sp2杂化B.某微粒空间构型 2020-07-11 …
请对号入座!已知交流电压为u=100sin(314t―π/4)V,则该交流电压的最大值Um请对号入 2020-07-19 …
一阶梯如图所示,其中每级台阶的高度和宽度都是0.4m,一小球以水平速度v飞出,g取10m/s2,欲 2020-07-22 …
直流电机电枢线速度的公式,看不懂啊我在看《电机与拖动》,书上说,直流电机的电枢的导体的线速度v=2 2020-08-01 …
一阶梯如图所示,每个阶梯高度都是0.4m,一球以水平速度v飞出,欲打在第四级台阶上,则v的取值范围是 2020-12-09 …