首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >爪哇倒金字塔的数字?

爪哇倒金字塔的数字?
EN

Stack Overflow用户
提问于 2022-01-06 11:24:16
回答 1查看 67关注 0票数 0

我被要求创建一个java程序,它将显示一个倒金字塔的数字(仅从1到9)。与用户输入多少行数。

我不知道如何循环,并将数字限制在9,并将其更改为右侧。

我的代码是:

代码语言:javascript
代码运行次数:0
运行
复制
    public static void main(String[] args) {
        Scanner sc = new Scanner (System.in);
        
        System.out.print("Enter height:\t");
        int height = sc.nextInt();
        
        for (int row = height; row >= 1; row--) {
            for (int col = 1; col <= row; col++) {
                System.out.print("");
            }
            for (int k = 1; k <= row; k++) {
                System.out.print(row + "");
            
            }
            System.out.println();
        }
        
        
    }
}

产出如下:

代码语言:javascript
代码运行次数:0
运行
复制
Enter height:   12
121212121212121212121212
1111111111111111111111
10101010101010101010
999999999
88888888
7777777
666666
55555
4444
333
22
1

产出应是:

代码语言:javascript
代码运行次数:0
运行
复制
Enter height:  12
    111111111111
     22222222222
      3333333333
       444444444
        55555555
         6666666
          777777
           88888
            9999
             111
              22
               3

或:

代码语言:javascript
代码运行次数:0
运行
复制
Enter height:  20
11111111111111111111
 2222222222222222222
  333333333333333333
   44444444444444444
    5555555555555555
     666666666666666
      77777777777777
       8888888888888
        999999999999
         11111111111
          2222222222
           333333333
            44444444
             5555555
              666666
               77777
                8888
                 999
                  11
                   2
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-06 11:44:51

您的主循环正在从高度运行到0,这将导致您打印的数字从高度降到1,这是输出期望它按升序进行的。

输出还期望任何大于9的值再次被视为个位数增量,因此在9之后再次出现1,而不是10。

您可以通过添加空格来编写,但是要在java中添加空间,实际上必须在两者之间添加空间“。

示例:

代码语言:javascript
代码运行次数:0
运行
复制
System.out.print(" ").

解决上述所有问题的代码片段应该如下所示:

代码语言:javascript
代码运行次数:0
运行
复制
    public static void main(String[] args) {
        Scanner sc = new Scanner (System.in);
        
        System.out.print("Enter height:\t");
        int height = sc.nextInt();
        
        for (int row = 1; row <=height; row++) {
            for (int space = 1; space < row; space ++) {
                System.out.print(" ");
            }
            for (int val = row ; val <= height; val++) {
                if(row>9){
                    System.out.print(row%10+1);
                }
                else{
                     System.out.print(row);
                }
            }
            System.out.println();           
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70606385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档