我想打印一个以0开头并以9结尾的数字金字塔,当它等于9时,程序应该从0到9重新开始,依此类推......
以下是我的尝试:
public static void main(String[] args) {
for (int i = 0; i < 10; i += 2) {
for (int j = 0; j < 10 - i; j += 2) {
System.out.print(" ");
}
for (int k = 0; k <= i; k++) {
System.out.print(" " + k);
}
System.out.println();
}
}
打印
0
0 1 2
0 1 2 3 4
0 1 2 3 4 5 6
0 1 2 3 4 5 6 7 8
但我需要这个..
0
1 2 3
4 5 6 7 8
9 0 1 2 3 4 5...
答案 0 :(得分:1)
每次k
打印0
的每次迭代,您都会打印从i
开始的0 1 2 3..
。而是创建一个初始化为0
的局部变量并打印它,并且每次都增加一个。在您的情况下,当0
值大于counter
时,您希望从9
启动计数器,您可以通过添加if(counter > 9) counter = 0;
来为此添加检查。添加了以下代码:
int counter = 0;
for (int i = 0; i < 10; i += 2) {
for (int j = 0; j < 20 - i; j++) {
System.out.print(" ");
}
for (int k = 0; k <= i; k++) {
System.out.print(" " + counter++);
if(counter > 9) counter = 0;
}
System.out.println();
}
输出
0
1 2 3
4 5 6 7 8
9 0 1 2 3 4 5
6 7 8 9 0 1 2 3 4
答案 1 :(得分:0)
你可以拥有一个变量并每次都增加它。
public static void main(String[] args) {
int count=0;
for (int i = 0; i < 10; i += 2) {
for (int j = 0; j < 10 - i; j += 2) {
System.out.print(" ");
}
for (int k = 0; k <= i; k++) {
System.out.print(" " + count++);
if(count>9)
count=count%10;
}
System.out.println();
}
}