欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

打印1到最大的n位数 java 数组实现

程序员文章站 2024-03-15 22:09:00
...

打印1到最大的n位数 java数组实现

题目:输入数字n,按顺序打印出从1到最大的n位十进制数字;
例子:输入n=3时,则打印出1、2、3 … 998、999;
误区:此题目没有给出n的范围,因此不能用int或者long long保存最大数字,然后循环输出;
思路:使用字符串或者数组实现,java代码实现如下:

class Number {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        printNumber(n);
    }

    public static void printNumber(int n) {
        if(n <= 0)
            return;

        int[] arr = new int[n+1];  //数组表示数字
        while(true){  //每次循环,数组表示的数字自增并打印当前结果
            count(arr, 0);  
            if(arr[n] == 1)  //当达到最大值+1时,退出循环
                break;
            print(arr);
        }
    }
    public static void count(int[] arr, int n){  //数组表示数据自增
        if(arr[n] < 9)
            arr[n]++;
        else{   //发生进位时,n+1位置自增
            arr[n] = 0;
            count(arr, n+1);
        }
    }
    public static void print(int[] arr){    //输出数组中当前结果
        for(int i = arr.length-1; i>=0; i--){
            if(arr[i] != 0)
                System.out.print(arr[i]);
        }
        System.out.print(" ");
    }
}

部分运行截图:
打印1到最大的n位数 java 数组实现

相关标签: Java