给定一个整数 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();
}
}
}
输出不是预期的 我的输出是
*
* *
* * *
* * * *
最佳答案
用前置空格填充每行的逻辑应该是向每行添加 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();
}
关于java - 完整的星星金字塔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57835303/