Java中的数字模式打印

我是编程新手。因此,作为练习,我正在尝试打印如下所示的数字模式


   4

  34 

 234 

1234 

我尝试了下面的代码


public static void main(String[] args) {

        // TODO Auto-generated method stub


        int n =4;

        for (int i = 1; i <= n; i++) {


            for (int j = i; j <= n; j++) {

                System.out.print(" ");

            }


            int num = 4;


            for (int j = 1; j <= i; j++) {

                System.out.print(num);

                num--;

            }

            System.out.println("");


        }


    }

但它是以这种方式打印的。


    4

   43

  432

 4321

我想,我必须在打印之前减少价值。如果我错了,请纠正我。但我被困在这里。谁能帮帮我吗?


天涯尽头无女友
浏览 193回答 3
3回答

炎炎设计

这是您想要获得的模式:&nbsp; &nbsp;4&nbsp; 34&nbsp;2341234当您用文字描述模式时,它可能如下所示:第 1 行有 3 个空格,然后是数字 4第 2 行有 2 个空格,然后是数字 3 和 4第 3 行有 1 个空格,然后是数字 2 到 4第 4 行有 0 个空格,然后是数字 1 到 4这里已经有某种模式。最后两行看起来非常相似。让我们看看前两行是否可以带入相同的形式:第 1 行有 3 个空格,然后是数字 4 到 4第 2 行有 2 个空格,然后是数字 3 到 4第 3 行有 1 个空格,然后是数字 2 到 4第 4 行有 0 个空格,然后是数字 1 到 4现在看起来不错。下一步是更改措辞以取决于给定的行:第 i 行有 (4 - i) 个空格,然后是数字 (4 - i + 1) 到 4我注意不要说 5 而不是 4 + 1,这样 4 仍然可见。让我们给这 4 个起另一个名字:第 i 行有 (max - i) 个空格,然后是数字 (max - i + 1) 到 max现在您应该能够将此指令翻译成 Java 代码。

POPMUISE

您只需要一个内部 for 循环。我使用三元运算符(也称为 elvis-operator 因为?:)来决定是打印数字还是空格:int n = 7;for (int i = 1; i <= n; i++) {&nbsp; &nbsp; for (int j = 1; j <= n; j++) {&nbsp; &nbsp; &nbsp; &nbsp; System.out.print(j > n-i ? j : " ");&nbsp; &nbsp; }&nbsp; &nbsp; System.out.println();}它打印&nbsp; &nbsp; &nbsp; 7&nbsp; &nbsp; &nbsp;67&nbsp; &nbsp; 567&nbsp; &nbsp;4567&nbsp; 34567&nbsp;2345671234567

HUH函数

在这种情况下,您实际上只需要一个嵌套循环:int n = 4;for (int i = n; i > 0; i--) {&nbsp; &nbsp; for (int j = 1; j <= n; j++) {&nbsp; &nbsp; &nbsp; &nbsp; if (j < i) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.print(" ");&nbsp; &nbsp; &nbsp; &nbsp; } else {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.print(j);&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }&nbsp; &nbsp; System.out.println();}0因此,从to循环n并打印一个空格,或者如果内部计数器小于 ,则打印数字i。输出:&nbsp; &nbsp;4&nbsp; 34&nbsp;&nbsp;234&nbsp;1234&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java