为了账号安全,请及时绑定邮箱和手机立即绑定

Java - 打印唯一的数字序列

Java - 打印唯一的数字序列

ibeautiful 2022-01-06 17:25:30
我一直试图找到一种方法来打印具有特定数字序列的倒金字塔。所需的顺序如下以及我目前拥有的。提示要求编写一个方法,该方法接受两个数字并创建一个倒金字塔,其中第一行的长度为第一个整数,并从第二个输入的数字开始。然后只有在达到 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 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

试试这个:


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

        }

    }

这会给你你的结果。请注意,我没有在扫描仪中包含动态部分。我使用长度和起始编号作为常量。


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


查看完整回答
反对 回复 2022-01-06
  • 1 回答
  • 0 关注
  • 124 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信