Nest Loops,无法弄清楚如何编写代码

fet 发布于 2019-03-09 java 最后更新 2019-03-09 14:39 3 浏览

嘿,我有一个问题,我一直想弄明白几个小时,我需要使用嵌套循环来打印以下内容

    -----1-----
    ----333----
    ---55555---
    --7777777--
    -999999999-
这是我迄今为止所拥有的。
    public static void Problem6 () {
        System.out.println("Problem 6:");
        for (int i = 1; i <= 5; i++) {
            for (int j = 5; j >= i; j--) {
                System.out.print("-");
            }
            for (int j = 1; j <= 9; j += 2) {
                System.out.print(j);
            }
            for (int j = 5; j >= i; j--) {
                System.out.print("-");
            }
            System.out.println();
        }
    }
这就是它打印的内容
    -----13579-----
    ----13579----
    ---13579---
    --13579--
    -13579-
已邀请:

fillum

赞同来自:

public    class    pattern
{
    public    static    void    main   (    )
    {
        for    (int   i =  1;i<=9;i+=2)
        {
            for(int b = 9;b>=i;b-=2)
            {
                System.out.print(" ");
            }
            for(int j =1;j<=i;j++)
            {
                System.out.print(i);
            }
            System.out.println();
        }
    }
}

nodio

赞同来自:

你有正确的短划线数,你只是没有正确打印出数字。让我们来看看为什么: 哪个循环打印出数字? 第二个嵌套for循环。 它有什么作用? 它打印出j,其中j的范围从19j在循环的每次迭代中递增2。换句话说,1, 3, 5, 7, 9,在您的输出中确认 你想要它做什么? 那么让我们来看看所需的输出。您希望1第一行第一行打印一次。您希望3第三行下一行打印三次。您希望5第五行下一行打印五次。等等。 你注意到一种模式吗?你想我们上面提到的循环打印相同数量(135,... i)作为次(135,... i)的数量。 编辑Whooops我实际上误读了输出。我的答案仍然与以前非常相似,但我撒谎说你打印的是哪一行。它仍然是3三次,5五次但不同的线。从我的解决方案跳到实际解决方案的最简单方法是注意在偶数行上......你什么都不做。您甚至可以用这种方式编写解决方案。 另一个提示是,您应该专注于将每行上的数字和破折号分开。当你修复每一行的数字时,你可能会搞砸破折号的数量,但是你会明白如何轻松修复破折号。