急!用Java编写一个嵌套的for循环打印下列图案:

2024-11-26 16:28:25
推荐回答(2个)
回答1:

public class Du {

public static void main(String[] args) {
final int num = 8;//郑郑启慧要输出几行就在这里控制了

int[][] ary = fillArray(num);

for (int i = 0; i < ary.length; i++) {
for (int j = 0; j < ary[i].length; j++) {
if(ary[i][j] != 0){
System.out.print(ary[i][j] + " ");
}else{
System.out.print(" " + " ");
}

}
System.out.println();
}

}

private static int[][] fillArray(final int num) {
int[][] ary = new int[num][num * 2 - 1];

for (int i = 0; i < ary.length; i++) {

int start = i + 1;
// 向前打印喊旁颂到1
for (int j = num; ary[i][j--] != 1;) {
ary[i][j] = start--;
}

// 向后打印到1
start = i;
for (int j = num - 1; ary[i][j++] != 1;) {
ary[i][j] = start--;
}

}
return ary;
}

}
---------------------------
1
1 2 1
1 2 3 2 1
1 2 3 4 3 2 1
1 2 3 4 5 4 3 2 1
1 2 3 4 5 6 5 4 3 2 1
1 2 3 4 5 6 7 6 5 4 3 2 1
1 2 3 4 5 6 7 8 7 6 5 4 3 2 1

回答2:

package test;
//包名可以不要 建一个氏搏叫Test3的类 就行了
public class Test3
{
public static void main(String args[])
{
/闭纯/控制行数
for(int i=1;i<=8;i++)
{
//输出每行开始的空格
for(int n=1;n<=(8-i);n++)
{
System.out.print(" ");
}
for(int j=1;j<=i;j++)
{
System.out.print(j);
//当数字等于每行最大的时候 递减输出
if(j==i)
{
for(int m=i-1;m>=1;m--)
{
System.out.print(m);
}
}
}
//输出每行结束的空格
for(int n=1;n<=(8-i);n++)
{
System.out.print(" ");
}
System.out.println(""歼态祥);
}
}
}

请采纳