首页 > 解决方案 > 打印带星号的金字塔图案

问题描述

我需要为带有星号的金字塔模式编写代码。是的,这听起来像是无处不在的代码。但是,我需要制作一个带有多个星号的金字塔,而不是多行。

例如,如果用户给了 9,那么需要打印一个金字塔,直到星号用完。它应该是中心金字塔。

我试过行数。但我不知道如何用星号的数量打印。while 循环可能是我的答案,但我不确定..

    public static void main(String args[]) {
        int n = 5; // number of rows

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

            System.out.println();
        }
    }

结果应该是这样的,但星号之间没有空格..

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

我的输出显示完全相同的内容,但我使用的是行数,而不是星号数。

标签: java

解决方案


不是最佳解决方案,但您设置了最大行数n=100

然后你定义你的asterix号码来打破嵌套循环。ctr是星号的总数。

直到asterix达到所需的数量,检查ctr值。

int n = 100;
int ctr = 0;
int asterix = 5;

for (int i = 0; i < n; i++)
{
    for (int j = n - i; j > 1; j--)
    {
        System.out.print(" ");
    }
    for (int j = 0; j <= i; j++)
    {
        ctr++;
        System.out.print("* ");
        if(ctr == asterix ){
            i=j=n;
        }
    }

    System.out.println();
}
}

基于@Hans Kesting 的想法。


推荐阅读