用数字打印反向三角形 - Java

时间:2014-09-24 08:03:55

标签: java for-loop geometry

打印一个反向三角形我遇到了一些问题,我希望实现这个模式:

******
***
*

但我的目标是通过数字

来实现这种模式
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();
}

输出竖直,如下所示:

*
***
******

我想使用上面显示的数字制作反向模式。

任何人都可以告诉我如何处理它吗?谢谢!

4 个答案:

答案 0 :(得分: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行;
  • 第二个循环:每一行都有不同的数字
  • 第三个循环:打印数j j次

答案 1 :(得分:0)

您只需要颠倒循环的顺序并递减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();
}

答案 2 :(得分:0)

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

答案 3 :(得分:0)

@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("*");
    }
}