对于循环右金字塔

时间:2017-04-30 06:35:25

标签: java for-loop

    Scanner x = new Scanner (System.in);
    int rjbnum1;

    System.out.print("The Input is: ");

    rjbnum1=x.nextInt();
       for (int i = rjbnum1; i > 0; i--) {
          for (int j = 0; j < i; j++) {
                System.out.print("\t"+ i);
            }
        System.out.println();
    }
}

}

  

我很难用这个哦:&#39;(我需要帮助我的输出

5  5  5  5  5
4  4  4  4
3  3  3
2  2
1
  

但我希望我的输出为&lt;

            5
         4  4
      3  3  3
   2  2  2  2
1  1  1  1  1
  

但是我的逻辑大脑出了问题哈哈哈,我花了3个小时尝试这个。

4 个答案:

答案 0 :(得分:1)

int rjbnum1 = 5;

for (int i = rjbnum1; i > 0; i--) {
    for (int j = 1; j <= rjbnum1; j++) {
        if (j >= i) {
            System.out.print("\t" + i);
        } else {
            System.out.print("\t");
        }
    }
    System.out.println();
}

<强>输出

                5
            4   4
        3   3   3
    2   2   2   2
1   1   1   1   1

答案 1 :(得分:1)

在两个for循环之后添加if条件。 if条件应检查内循环中j的值是否大于或等于外循环的i值,然后在if条件内打印i的值。

答案 2 :(得分:0)

您可以使用String.format例如使用这段代码:

    int n = 5;
    String str;
    for (int i = n; i >= 1; i--) {
        str = String.format("%0" + (n-i+1) + "d", 0).replace("0", i+"");
        System.out.println(String.format("%1$" + n + "s", str));
    }

<强>输出

    5
   44
  333
 2222
11111

答案 3 :(得分:0)

import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.print("The Input is: ");

int rjbnum1=scan.nextInt();

for (int x = 1; x <= rjbnum1; x++)
{
System.out.println();

for(int i = x;i<rjbnum1; i++)
System.out.print(" ");

for (int j = 0; j < x; j++)
System.out.print(x);
}
}}

<强>输出 &#39;输入为:6

     1
    22
   333
  4444
 55555
666666