微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Java中将这个数字表打印到控制台?

要求一个自然数n,我想以这种格式打印到控制台:

1
              2 1
            3 2 1
          4 3 2 1
        5 4 3 2 1
          .
          .
          .
n . . . 5 4 3 2 1

输入4,这是我到目前为止:

1
   21
  321
 4321

我想在数字之间添加一个空格.这是我的代码

import java.util.Scanner;
public class PatternTwo {
    public static void main(String[] args) {
        Scanner in = new Scanner(system.in);
        int userInput;
        System.out.println("Please enter a number 1...9 : ");
        userInput = in.nextInt();
        String s="";
        int temp = userInput;
        for(int i=1; i<=userInput; i++ ) {

            for (int k= userInput; k>=i; k-- ) {
                System.out.printf(" ");
            }

            for(int j =i; j>=1; j-- ) {
                System.out.print(j);
            }


            System.out.println("");
        }

    }

}

解决方法

在要打印的数字前面添加一个空格,并将上面的空格加倍,使其不是金字塔.像这样的东西:

import java.util.Scanner;
public class PatternTwo {
    public static void main(String[] args) {
        Scanner in = new Scanner(system.in);
        int userInput;
        System.out.println("Please enter a number 1...9 : ");
        userInput = in.nextInt();
        String s="";
        int temp = userInput;
        for(int i=1; i<=userInput; i++ ) {

            for (int k= userInput; k>i; k-- ) { // <- corrected condition
                System.out.printf("  ");
            }

            for(int j = i; j>=1; j-- ) {
                System.out.print(j);

                // check if not 1 to avoid a trailing space
                if (j != 1) {
                    System.out.print(" ");
                }
            }


            System.out.println("");
        }

    }

}

编辑

感谢/u/shash678我纠正了我的解决方案,删除了所有不必要或错误的空格

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐