0

创建一个要求用户输入数字的类,然后根据 int 输入打印出以下模式。

所以我制作的代码结果看起来像这样......

12345 
 1234 
  123 
   12 

但它应该看起来像这样

    5
   45
  345
 2345
12345
Scanner tri = new Scanner(System.in);
System.out.println("Enter a postive integer.");
int shape = tri.nextInt();
for(int c = shape; c > 1; --c){
    for (int a = 1; a <= shape-c; a++){
        System.out.print(" ");
    }
    for(int d = 1; d <= c; d++){
        System.out.print(d);
    }
    System.out.println(" ");
4

2 回答 2

2

你可以试试下面的代码吗?

Scanner tri = new Scanner(System.in);
System.out.println("Enter a postive integer.");
int shape = tri.nextInt();

for (int c = shape; c >= 1; --c) {
    for (int a = 1; a <= c; a++) {
        System.out.print(" ");
    }
    for (int d = c; d <= shape; d++) {
        System.out.print(d);
    }
    System.out.println(" ");
}

// result
//     5 
//    45 
//   345 
//  2345 
// 12345 
于 2019-04-12T02:40:06.010 回答
0

您可以使用一些填充,而不是使用嵌套循环。基本上,您需要一个仅包含空格且与您的号码中的位数一样长的字符串。

在一个循环中获取您的号码的子字符串并用空格填充剩余的字符串。我的代码:

public static void pattern(int number)
    {
        String s=Integer.toString(number);
        String padding="";
        for(int i=0;i<s.length();i++,padding+=" ");
        for(int i=1;i<=s.length();i++)
        {
            System.out.println(padding.substring(i)+s.substring(s.length()-i));
        }
    }
于 2019-04-12T05:10:20.667 回答