为了账号安全,请及时绑定邮箱和手机立即绑定

java - 如何在java中使用三个嵌套的for循环来实现带有_的倒金字塔?

java - 如何在java中使用三个嵌套的for循环来实现带有_的倒金字塔?

慕尼黑8549860 2022-10-12 15:28:02
我在试图弄清楚如何使用扫描仪创建具有三个嵌套 for 循环的金字塔时遇到了麻烦。我必须做到这一点Enter a number61 2 3 4 5 6 - 1 2 3 4 5 - - 1 2 3 4- - - 1 2 3- - - - 1 2- - - - - 1我基本上已经尝试过了,我知道这是错误的,但我知道我必须做什么,但我不知道该怎么写。Scanner ent= new Scanner(System.in);System.out.println("Enter a number");int x= ent.nextInt();for(int a = x; a >= 1; a--) {    for(int c=1;c<=x;c++) {        System.out.print("_");        for(int b = 1; b <= a; b++) {             System.out.print(d + " ");         }     }    System.out.println("");}
查看完整描述

2 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

把这个图案一分为二。

  1. 短跑

  2. 从 1 到 n 的数字

首先计算你需要打印多少次这个图案。这里6次。

    int n=in.nextInt();

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

    {


    }

每次您需要打印破折号后跟数字。


短跑


------------

Row | Dashes

------------

 1  |  0

 2  |  1

 3  |  2

 4  |  3

 5  |  4

 6  |  5

所以我引入了一个变量 dashes=0 并增加每一行的破折号。


    int n=in.nextInt();     

    int dashes=0;


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

    {

        for(int j=1; j<=dashes;j++)

            System.out.print("-");

        dashes++;

    }

数字从 1 开始,以 (n-i+1) 结尾


------------

Row | Numbers (n-i+1)

------------

 1  |  123456 

 2  |  12345

 3  |  1234

 4  |  123

 5  |  12

 6  |  1

所以最终的代码是


    int n=in.nextInt();


    int dashes=0;


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

    {

        for(int j=1; j<=dashes;j++)

            System.out.print("-");


        for(int k=1;k<=n-i+1;k++)

            System.out.print(k);


        // for next row - starts in new line

        System.out.println();

        dashes++;

    }


查看完整回答
反对 回复 2022-10-12
?
慕少森

TA贡献2019条经验 获得超9个赞

这是一种方法:


System.out.println("Enter a number");

int x = ent.nextInt();


for (int i=0; i < x; ++i) {

    for (int j=0; j < i; ++j) System.out.print("- ");

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

        if (j > 1) System.out.print(" ");

        System.out.print(j);

    }

    System.out.println();

}


1 2 3 4 5 6

- 1 2 3 4 5

- - 1 2 3 4

- - - 1 2 3

- - - - 1 2

- - - - - 1

逻辑是使用两个单独的内部循环,一个用于破折号,它首先出现,另一个用于数字。破折号的循环从 0 运行到i-1,即外循环之前的一个位置。然后,对于该行的其余部分,我们打印从 1 到 的数字x - i。


查看完整回答
反对 回复 2022-10-12
  • 2 回答
  • 0 关注
  • 133 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号