如何修复它以输出我想要输出的内容?

How do I fix it to output what I want to output?

我最近在 Java 开始编码,一周前才开始。之前的post因为我没有详细说明而被删除了,很抱歉。我一直在使用 for、do 和 while 语句时遇到麻烦,如何在我输入的预期输出中输出相同的结果?使用 while 或 do 或 for only。

当前代码:

public class Main {
    public static void main(String[] args) {
        for(int row = 3;row <= 7;row++) {
            String spc = "  ";
            for(int column = 1; column <;= 3; column++) {
                System.out.print(column * row + spc);
            }
            System.out.println();
        }
    }
}

当前输出:

3  6  9  
4  8  12  
5  10  15  
6  12  18  
7  14  21  

预期产出:

设置 1

3
4 6
5 8 11
6 10 14 18
7 12 17 22 27

设置 2

3 8 13 18 22
2 6 10 14 
1 4 7
0 2
-1

I'm really having a hard time in solving this problem, any help will be very appreciated! Thank you :)

首先我会尝试给你一些提示而不是 answer.I 想帮助你一个 thing.If 你看到你的设置 1,有一个 pattern.On你的第一行你只有 3 (基本上打印一次你的行值)在第二行你可以看到有两个输出(第二行,两个 outputs.third 第三行输出)并且它是 on.So 我相信而不是从 1 到 3 尝试在你的第二个中有一个 counter.Use 这个计数器 for --> column < counter.Also 每次尝试在你的第二个 for 语句之前打印你的行值并且在你的 for 声明中我相信现在你有一个计数器它会更容易找到一个更好的方程而不是列 * row.Dont 忘记你必须增加你的计数器!我还制作了一个标志变量来保存每个计时我的行并在其上添加计数器但这取决于你想怎么做 it.To 做你的 set 2 它只是相同的逻辑但是相反你会减少你的计数器而不是 increasing.If 你有任何问题甚至在你之后阅读本文随时问我:)

因此,这是为第 1 组要求提供答案的代码:

        for (int i = 0; i < 5; i++) {
            for (int j = 0; j <= i; j++) {
                    System.out.print((i + 3) + (i + 1) * j + " ");  //Since someone else already answered, I am going to add it here too
            }
            System.out.println();  //To go to next line
        }

解释:

外层的 for 循环确定输出中的行数(在本例中为 5)。内部 for 循环确定输出中该特定行的列数(使用 i 检查值,因为第一行包含一个元素,第二行包含两个元素,依此类推)。

当您希望第一行有 5 个元素并在 i 的每次迭代中减少元素数量时使用相同的逻辑。

希望这个解释能帮助您自己弄清楚第 2 组的逻辑。

这是您的问题的解决方案。我从行号 1..5 开始。然后,我从该值计算出我需要根据行号执行内部循环多少次。一旦我在内部循环中迭代了正确的次数,那么只需要让数学正确地给出你想要的数字即可:

public static void main(String argv[]) {
    for (int row = 1 ; row <= 5 ; row++) {
        String str = "";
        for (int term = 0 ; term < row ; term++) {
            str += ((row + 2) + row * term) + " ";
        }
        System.out.println(str);
    }

    System.out.println();

    for (int row = 5 ; row >= 1 ; row--) {
        String str = "";
        for (int term = 0 ; term < row ; term++) {
            str += ((row - 2) + row * term) + " ";
        }
        System.out.println(str);
    }
}

结果:

3 
4 6 
5 8 11 
6 10 14 18 
7 12 17 22 27 

3 8 13 18 23 
2 6 10 14 
1 4 7 
0 2 
-1 

注意:我相信第二组的第一行应该以 23 结尾,而不是您显示的 22 作为所需输出。