打印半个数字金字塔
Printing Half Pyramid of Numbers
public class NestedForLoop {
private void generateNumberPyramid(int num) {
int length = num + 1;
for(int i = 1; i < length; i++) {
for(int j = 0; j < i; j++) {
System.out.print(j+1);
}
System.out.println();
}
}
public static void main(String[] args) {
NestedForLoop nfl = new NestedForLoop();
nfl.generateNumberPyramid(4);
}
}
输出结果如下:
1
12
123
1234
预期的输出应该是:
1
22
333
4444
可能出了什么问题?
将 System.out.print(j+1);
更改为 System.out.print(i);
System.out.print(i)
而不是 System.out.print(j+1)
您的问题出在嵌套的 for 循环中:
变化:
for(int j = 0; j < i; j++) {
System.out.print(j+1);
}
收件人:
for(int j = 0; j < i; j++) {
System.out.print(i);
}
i
的值对应每一行。 i=1
指第一行,i=2
指第二行,依此类推。因此,在您的 for loop
中进行以下更改:
for(int i = 1; i < length; i++) {
for(int j = 0; j < i; j++) {
System.out.print(i);
}
System.out.println();
}
爱德华 link: http://ideone.com/5g0xWT
由于您正在迭代 ROWS,因此您应该使用 i 而不是 (j+1)。这样做只会迭代你想要的东西,否则它会一直为每个数字加一。就像这样:
for(int i = 1; i < length; i++) {
for(int j = 0; j < i; j++) {
System.out.print(i);
}
System.out.println();
}
public class NestedForLoop {
private void generateNumberPyramid(int num) {
int length = num + 1;
for(int i = 1; i < length; i++) {
for(int j = 0; j < i; j++) {
System.out.print(j+1);
}
System.out.println();
}
}
public static void main(String[] args) {
NestedForLoop nfl = new NestedForLoop();
nfl.generateNumberPyramid(4);
}
}
输出结果如下:
1
12
123
1234
预期的输出应该是:
1
22
333
4444
可能出了什么问题?
将 System.out.print(j+1);
更改为 System.out.print(i);
System.out.print(i)
而不是 System.out.print(j+1)
您的问题出在嵌套的 for 循环中:
变化:
for(int j = 0; j < i; j++) {
System.out.print(j+1);
}
收件人:
for(int j = 0; j < i; j++) {
System.out.print(i);
}
i
的值对应每一行。 i=1
指第一行,i=2
指第二行,依此类推。因此,在您的 for loop
中进行以下更改:
for(int i = 1; i < length; i++) {
for(int j = 0; j < i; j++) {
System.out.print(i);
}
System.out.println();
}
爱德华 link: http://ideone.com/5g0xWT
由于您正在迭代 ROWS,因此您应该使用 i 而不是 (j+1)。这样做只会迭代你想要的东西,否则它会一直为每个数字加一。就像这样:
for(int i = 1; i < length; i++) {
for(int j = 0; j < i; j++) {
System.out.print(i);
}
System.out.println();
}