【问题标题】:Printing Reverse Triangle with Numbers - Java用数字打印反向三角形 - Java
【发布时间】:2014-09-24 08:03:55
【问题描述】:

我在打印我想要实现的反向三角形时遇到了一些问题,例如这种模式:

******
***
*

但我的目标是用这个数字实现这种模式:

333221
221
1

所以,这是我目前的代码:

int x = 1;
for(int r=0;r<3;r++)
{
    x=x+r;
    for(int c=0;c<x;c++)
    {
        System.out.print("*");
    }
    x+=1;
    System.out.println();
}

输出直立如下:

*
***
******

我想用上面显示的数字制作图案reverse

谁能告诉我如何处理它?谢谢!

【问题讨论】:

  • 反转循环。更改x 的值并减少x 而不是增加它
  • 我不明白你的意思,你能澄清一下吗?对不起,我是初学者。
  • @WilliamPrice 不,我没有创建equilateral 三角形。

标签: java for-loop geometry


【解决方案1】:

我会这样做:

    for (i = 3; i > 0; i--) {

        for (j = i; j > 0; j--) {

            for (c = j; c > 0; c--) {

                System.out.print(j);
            }
        }
        System.out.println();

    }
  • 第一个循环:您要打印 3 行;
  • 第二个循环:每行有 i 个不同的数字
  • 第三个循环:打印数字 j j 次

【讨论】:

  • 是的!完美的!这其实是我想要实现的,非常感谢! :D
【解决方案2】:

您只需要颠倒循环的顺序并递减 x 而不是递增它。不过我稍微改了一下代码:

int level = 3;
for(int r=level ; r>0 ; r--) {
    for(int c=r ; c>0 ; c--) 
        for (int x=0 ; x<c ; x++)
            System.out.print("*");
    System.out.println();
}

【讨论】:

  • 是的,我想过。感谢您的想法:)
【解决方案3】:
        int depth = 3;
        for (int r = depth + 1; r >= 0; r--) {
            for (int c = 0; c < r; c++)
                for (int b = 0; b < c; b++)
                    System.out.print("*");
            System.out.println();
        }

【讨论】:

    【解决方案4】:
    @Test
    public void reverseTriangle(){
        int num = 3;
        for (int i = num; i > 0; i--) {
            this.draw(i);
            System.out.println();
        }
    }
    
    private void draw(int num) {
        int total = 0;
        for (int i = 0; i <= num; i++) {
            total = total + i;
        }
        for (int i = 0; i < total; i++) {
            System.out.print("*");
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多