如何在Java中创建简单的Triagle模式

时间:2018-11-13 13:46:52

标签: java

我正在尝试输出一个像这样的三角形:

19283765
2837465
37465
465
5

但是,我的实际输出却是这样的:

98765
8765
765
65
5

public class JavaNumber2 {
    public static void main(String[] args) {

        int r = 9; 


        for (int g = 9; g <= r; g--) {


            for (int j = g; j >= 5; j--) {
                System.out.print(j);
            }

            System.out.println();
        }


    }
}

我该如何修改它以便获得第一个输出?

3 个答案:

答案 0 :(得分:0)

第一个for循环中的条件错误g<=r应该为g>=0,并且一个if条件要以相反的顺序打印。

public static void main(String[] args) {
        int r = 9; 


        for (int g = 9; g >=0; g--) {


            for (int j = g; j >= 5; j--) {
                if(g==9) {
                    if(j>6) {
                        System.out.print(r+1-j);
                    }
                }else {
                    if(j>5) {
                        System.out.print(r+1-j);
                    }
                }
                System.out.print(j);

            }

            System.out.println();
        }

    }

答案 1 :(得分:0)

我有这个答案:

public class T2Tree {

public static void main(String[] args) {

    for (int i = 5; i >0; i--) {
        for (int j = 0; j < i; j++) {
            System.out.print(j+1+5-i);
            if (j<i-1) {
                System.out.print(9-j+i-5);
            }
        }
        System.out.println();
    }
}

}

答案 2 :(得分:0)

或者您可以使用递归(也可以使用任何起点和终点):

class Ideone
{
    public static void main (String[] args)
    {
        int left = 1;
        int right = 9;

        while(right >= left){
            r(left, right);
            System.out.println();

            left++;
            right--;
        }
    }

    private static void r(int left, int right){
        System.out.print(left);
        if(left != right){
            System.out.print(right);    
        }

        if(right > left){
            r(left + 1, right - 1);
        }
    }
}
相关问题