我不能用Java编写三角形模式
这是密码我不能用Java编写三角形模式,java,algorithm,Java,Algorithm,这是密码 for (int i = 1; i<=5; i++) { for (int j = 5; j>=i; j--) { System.out.print(" "); } for (int k = i; k>0; k--) { System.out.print(k + " "); } System.out.println(); } 相反,我得到的是: 1 2 1 3
for (int i = 1; i<=5; i++) {
for (int j = 5; j>=i; j--) {
System.out.print(" ");
}
for (int k = i; k>0; k--) {
System.out.print(k + " ");
}
System.out.println();
}
相反,我得到的是:
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
你能以一种初学者友好的方式向我解释原因并告诉我如何解决它吗?以下是一些帮助你解决这个问题的提示: 阅读你的代码,确保你理解它在做什么。如果是别人为你写的,请作者解释!如果不了解代码的作用,则无法正确修复代码 查看预期输出,并计算每行开头的空格数 查看实际输出,并计算每行开头的空格数 相应计数之间的差异是什么 差异的模式是什么 修复是在代码的一行中进行的简单更改。如果您正确地完成了步骤1和步骤5,那么很明显您需要更改什么 更新-我的错误@波希米亚人指出有两个区别。如果还希望输出的行数相同,则需要更改两行
但这个答案的真正意义在于帮助您自己解决这个问题……确保您理解这个问题以及您对代码的具体操作 以下是我解决这个问题的步骤: 试着理解输出 数一数每样东西之间的间隔,看看是否有某种模式 查看预期输出,并将其与您的进行比较。 在此基础上进行调整。 如果你很难解决问题,试着把问题分解成更小的部分。然后在记事本中用伪代码编写它,这样您就可以更好地理解您实际上在做什么。例如: 对于每个迭代,我必须打印X个空格,然后打印Y个空格 迭代1:打印x空格,打印y空格 迭代2:打印x空格,打印y空格 等等 我相信你会明白的 以下是解决方案:
for (int i = 0; i<=5; i++) {
for (int j = 6; j>i; j--) {
System.out.print(" ");
}
for (int k = i; k>=0; k--) {
System.out.print(k+1 + " ");
}
System.out.println();
}
你理解你已经写的代码吗?看看你想要的输出。每行之前需要多少空格?请尝试System.out.print;//2个空格…可能多于1行:如果OP想要打印6行,OP可能也会想要用6行替换5行。啊。。。说得好。是的,有两个区别。我没有注意到。
for (int i = 0; i<=5; i++) {
for (int j = 6; j>i; j--) {
System.out.print(" ");
}
for (int k = i; k>=0; k--) {
System.out.print(k+1 + " ");
}
System.out.println();
}