Java-打印唯一的数字序列

时间:2018-11-07 01:00:44

标签: java loops class

我一直试图找到一种方法来打印具有一定数字序列的倒金字塔。所需的顺序以及我目前的顺序如下。

提示要求编写一个采用两个数字并创建倒金字塔的方法,第一行的长度为第一个整数,第二行以输入的数字开头。然后只有在达到9后序列才从1开始。

    Needed:                Currently Have:

    1 2 4 7 2 7 4              1 2 3 4 5 6 7
      3 5 8 3 8 5                8 9 1 2 3 4
        6 9 4 9 6                  5 6 7 8 9
          1 5 1 7                    1 2 3 4
            6 2 8                      5 6 7
              3 9                        8 9
                1                          1



    static int plotTriangle(int a, int b){

        int num = b;

        for (int row = a; row >= 0; row--){

            for (int i = a; i - row >= 0; i--){
                System.out.print("  ");
                num += (num+a-row);
                num -= 2;
            }
            for (int i = 0; i <= row; i++){
                num++;
                while (num >= 10){
                    num -= 9;
                }                
                System.out.print(num + " ");
            }
            System.out.println();
        }
        return 0;
    }
    public static void main(String[] args) {

        Scanner in = new Scanner (System.in);

        System.out.print("Enter length: ");
        int l = in.nextInt();

        System.out.print("Enter Start: ");
        int s = in.nextInt();

        int triangle = plotTriangle(l, s);
    }

1 个答案:

答案 0 :(得分:0)

尝试一下:

    public static void main(String[] args) {

        int length = 7;

        int[][] numbers = new int[length][length];

        int count = 1;
        for(int i = 0; i < numbers.length; ++i) {
            for(int j = 0; j < (i+1); ++j) {
                numbers[i][j] = count++;
                if(count > 9)
                    count = 1;
            }
        }

        for(int i = 0; i < numbers.length; ++i) {
            for(int j = 0; j < numbers.length; ++j) {
                if(numbers[j][i] == 0)
                    System.out.print(" ");
                else
                    System.out.print(numbers[j][i]);
                System.out.print("  ");
            }
            System.out.println();
        }
    }

这将为您提供结果。请注意,我没有在扫描仪中包含动态部件。我使用长度和起始编号作为常量。

说明: 在第一个循环中,我基本上只是将数字存储在数组中。在第二个循环中,该数组以不同的顺序打印。