给出一个整数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();
}
}
}
不期望输出 我的输出是
*
* *
* * *
* * * *
答案 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();
}