Java 使用for循环构建三角形

Java 使用for循环构建三角形,java,Java,buildtlumb(int height)方法将采用一个整数参数,该参数表示为纪念法老而建造的金字塔的高度。此方法将打印出金字塔的表示,如下面的示例所示 范例​: Pharaoh p2 = new Pharaoh(“Rameses”, 7); p2.buildTomb(5); * *** ***** ******* ********* 例如: Pharaoh p3 = new Pharaoh(“Jim”, 3); p3.buildTomb(

buildtlumb(int height)
方法将采用一个整数参数,该参数表示为纪念法老而建造的金字塔的高度。此方法将打印出金字塔的表示,如下面的示例所示

范例​:

Pharaoh p2 = new Pharaoh(“Rameses”, 7); 
p2.buildTomb(5);

    *      
   ***  
  ***** 
 ******* 
*********
例如:

Pharaoh p3 = new Pharaoh(“Jim”, 3);    
p3.buildTomb(3);

    *      
   ***  
  ***** 
Pharaoh p4 = new Pharaoh(“Pickle”, 3); 
p4.buildTomb(1);

    *      
   ***  
例如:

Pharaoh p3 = new Pharaoh(“Jim”, 3);    
p3.buildTomb(3);

    *      
   ***  
  ***** 
Pharaoh p4 = new Pharaoh(“Pickle”, 3); 
p4.buildTomb(1);

    *      
   ***  
我无法得到这些结果,这是我已经拥有的代码

/**
 * Write a description of class Pharaoh here.
 * 
 */
public class Pharaoh
{
    private String name;
    private int greatness;

    public Pharaoh(String n, int g)
    {
        name = n;
        greatness = g;
    }

    public void buildTomb( int height)
    {
        if(height > greatness)
            System.out.println("(PEASANT REVOLT)");

        if(height <= 2)
            height = 2;

        if(height >= 2 && height <= greatness)
        {
            int x = height;

            for(int m = 0; m < 2 * x - 1; m++) //for upper star
                System.out.print(" ");

            System.out.println("*");

            for(int j = 1; j <= x; j += 1)
            {
                for(int i = 1; i <= x - j; i += 1)
                    System.out.print("  ");

                for(int k = 1; k <= 2 * j; k += 1)
                    System.out.print("* ");

                System.out.println();
            }
            System.out.println( name + " 's TOMB ");
        }
    }
}
/**
*在这里写一篇关于类的描述。
* 
*/
公务舱
{
私有字符串名称;
私人的伟大;
公共字符串(字符串n,整数g)
{
name=n;
伟大=克;
}
公共建筑(内部高度)
{
如果(高度>伟大)
系统输出打印(“农民起义”);

如果(高度=2&&height使用函数划分问题。

对于此函数,您需要打印许多行。对于每一行,您需要知道两件事:要打印的空格数和要打印的星号数。在给定行号的情况下,编写一个函数来计算这些值


完成后,只需使用这些函数即可完成工作。如果您有bug,您会在查看结果时发现它们。尝试和错误会让您完成剩下的工作。

所有行都应使用相同的代码打印。顶部/第一行没有什么特殊之处

首先,正如Riley Carney所提到的,您需要识别模式:

看到图案了吗?
Astericks:Top->1,Next->3,Next->5

Spaces:Top->4,Next->3,Next->2,Next->1

您有一个行循环(您的
j
循环),从
1
height
(包括)计数

现在查看模式,看看是否可以计算这两个值

对于空格(缩进),底行有0个空格,上面的行比下面的行多1个。这意味着值从
高度-1
向下到
0
,或者换句话说:

spaces = height - row
stars = row * 2 - 1
对于星号(
*
),最上面一行有一个星号,下面每一行有两个星号。这意味着值是
1
3
5
,…,或者换句话说:

spaces = height - row
stars = row * 2 - 1
现在,打印时,只应打印单个空格,不应打印星号后的空格,因为您当前正在打印以下6行(!):

当您应该打印这5行时:


看到模式了吗?
Astericks:Top->1,Next->3,Next->5
空格:Top->4,Next->3,Next->2,Next->1
我没能得到那些结果,你是什么意思?我的意思是我的输出不同好吧,我们不只是帮你回答作业,你想做的是修复你的代码产生正确的输出。