完整的金字塔金字塔

时间:2019-09-07 15:55:17

标签: java

给出一个整数N,打印一个完整的星号金字塔。

大小为N的完整星号金字塔有N行星号。第一行有 1个星号,第二行有2个星号,第三行有3个星号,依此类推。每个星号之间都有一个空格。每行中的星号居中,以使其看起来像金字塔。 输入4

   *
  * *
 * * *
* * * *

输出应该像这样

import java.util.*;
public class solution {

    public static void main(String[] args) {
        Scanner sc= new Scanner(System.in);
        int n= sc.nextInt();
        int i,j,k,r;
        r=n;
        for(i=1;i<=r;i++){
            for(j=1; j<=r; j++){
                System.out.print(" ");
            }
            n--;
            for(k=1; k<=i;k++){
                System.out.print(" *");
            }
            System.out.println();
        }
    }

}

不期望输出 我的输出是

*
* *
* * *
* * * *

1 个答案:

答案 0 :(得分:1)

您为每行加上前置空格填充的逻辑应为每行添加N - r -1个空格,从第一行的r=0开始。因此,您的for循环应为:

for (j=n-1; j >= 1; j--) {
    System.out.print(" ");
}

只需进行一次小的更改,便会产生以下输出,高度为5:

    *
   * *
  * * *
 * * * *
* * * * *

这是完整的更新代码:

Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int r = n;

for (int i=1; i <= r; i++) {
    for (int j=n-1; j >= 1; j--) {
        System.out.print(" ");
    }
    n--;
    for (int k=1; k<= i;k++) {
        System.out.print(" *");
    }
    System.out.println();
}