java - 如何在Java中绘制带星号的倒金字塔

标签 java arrays algorithm

代码

public static void main(String[] args) {

    String text=JOptionPane.showInputDialog("Introduce height");

    int height=Integer.parseInt(text);

    drawInversePiramid(height);
}

public static void drawInversePiramid(int height){
    for(int numberasterisks=(height*2)-1,numberspaces=0;numberasterisks>0;numberspaces++,numberasterisks-=2){
        //we draw spaces
        for(int i=0;i<numberspaces;i++){
            System.out.println(" ");
        }//we draw the asterisks
        for(int j=0;j<numberasterisks;j++){
            System.out.println("*");
        }//to jump the line
        System.out.println("");
    }
}

我在正确编译金字塔时遇到了问题。相反,它只是打印一个带有正确数量星号的垂直图案。

最佳答案

除了一个小细节外,您的代码实际上是正确的。您到处都在调用 println,它总是会打印到换行符。相反,只在每行的末尾调用 println,但是当你想用星号和空格构建给定的行时只使用 print。使用此版本的代码:

public static void drawInversePiramid(int height) {
    for (int numberasterisks=(height*2)-1,numberspaces=0;numberasterisks>0;numberspaces++,numberasterisks-=2){
        // we draw spaces
        for (int i=0; I < numberspaces; i++) {
            System.out.print(" ");
        }
        // we draw the asterisks
        for (int j=0; j < numberasterisks; j++) {
            System.out.print("*");
        }
        // to jump the line
        System.out.println("");
    }
}

drawInversePiramid(3);

我得到了正确的输出:

*****
 ***
  *

Demo

关于java - 如何在Java中绘制带星号的倒金字塔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50927111/

相关文章:

java - 从 Clojure 导入 Java 类

android - 检查解析数组列是否包含某些值

java - 生成强大团队的最佳算法

c++ - 大 if else 语句

c - C 中的动态内存分配 : Problems in Realloc

algorithm - 查找 k 阶斐波那契树中两个节点之间的路径

java - 阻止用户在java扫描仪中输入数字?

Java Hibernate暂时忽略带有条件的@ManyToOne注释

java - Android .split 无法正常工作

javascript - 使用 .some() 比较数组