java - 完整的星星金字塔

标签 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();
        }
    }

}

输出不是预期的 我的输出是

*
* *
* * *
* * * *

最佳答案

用前置空格填充每行的逻辑应该是向每行添加 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/

相关文章:

java - 复选框在 JTable 中不起作用/不可编辑

java - 如何在swing中将元素添加到JList?

java - 框架中声明的按钮在按下时无法正常工作

java - HashMap 中的 ListAdapter

JavaFX 线图颜色差异

java - 嵌套 if/else、开关或更有效的 RPG 战斗?

java - Spring Boot 中的嵌套映射不加载静态内容

java - JVM 系统属性 - 如何将其视为字符串文字

java - 在概念上理解这个链表代码有困难

java - 如何避免 Web 服务中的类级别 @path 来处理所有 Web 服务调用