我试图弄清楚我的程序出了什么问题。应该有四个三角形打印:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
以下是我到目前为止编写的代码:
public static String trianglePatterns(int limit) {
// Triangle One
for (int x = 1; x <= limit; x++) {
for (int y = 1; y <= x; y++) {
System.out.print(y + " ");
}
System.out.print("\n");
}
System.out.print("\n");
// Triangle Two
while (limit > 0) {
for (int y = 1; y <= limit; y++) {
System.out.print(y + " ");
}
limit--;
System.out.println("");
}
// Triangle Three
for (int row = 1; row <= limit; row++) {
for (int space = 7; space >= 0; space--) {
System.out.print(" ");
}
for (int num = 1; row >= 1; num--) {
System.out.print(" " + num);
}
}
return "";
}
我甚至没有开始第四个因为我不知道怎么做。我的程序将运行并正确显示前两个三角形,但在运行它时不会包含第三个三角形。是什么导致了这个问题,我该如何开始第四个三角形?
答案 0 :(得分:2)
您在三角形2循环中将limit
减少为0,但在第三个row <= limit
中破坏条件。这就是为什么它不起作用的原因。
当phflack注意到您在打印时不需要将整数转换为String
。只需将int
传递给print()
即可。阅读docs中的更多内容。
答案 1 :(得分:0)
有些事要指出:
System.out.print("\n");
= System.out.println();
limit
变量。最好在每个循环上使用副本这是我的尝试:
public static void trianglePatterns(final int limit) {
// Triangle One
for (int x = 1; x <= limit; x++) {
for (int y = 1; y <= x; y++) {
System.out.print(y + " ");
}
System.out.println();
}
System.out.println();
// Triangle Two
for (int x = limit; x > 0; x--) {
for (int y = 1; y <= x; y++) {
System.out.print(y + " ");
}
System.out.println();
}
System.out.println();
// Triangle Three
// first printint spaces of each row and then the numbers
for (int x = 1; x <= limit; x++) {
for (int space = (limit - x); space > 0; space--) {
System.out.print(" ");
}
for (int num = x; num > 0; num--) {
System.out.print(num + " ");
}
System.out.println();
}
System.out.println();
// Triangle Four
for (int x = limit; x >= 0; x--) {
for (int space = (limit - x); space > 0; space--) {
System.out.print(" ");
}
for (int num = 1; num <= x; num++) {
System.out.print(num + " ");
}
System.out.println();
}
}
trianglePatterns(5)
的输出:
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1