Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我不能用Java编写三角形模式_Java_Algorithm - Fatal编程技术网

我不能用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();
    }