12_打印1到最大的N位数

来源:互联网 发布:linux就该这么学书籍 编辑:程序博客网 时间:2024/06/15 19:48

Java版

题目:输入数字n,按顺序打印出1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。

public class Print1ToMax {    //对数字进行加1操作    public static boolean Increment(int[] num){        boolean isOverflow = false;        int nTakeOver = 0;        for(int i=num.length-1; i >= 0;i--){            int nSum = num[i] +nTakeOver;            if(i == num.length-1)                nSum++;            if(nSum >= 10){                if(i == 0)                    isOverflow = true;                else{                    nTakeOver = 1;                    nSum = nSum - 10;                    num[i] = nSum;                }            }            else{                num[i] = nSum;                break;            }        }        return isOverflow;      }    public static void PrintNumber(int[] num) {        boolean isBeginning = true;        for(int i = 0 ; i< num.length;i++){            if(isBeginning && num[i] != 0)                isBeginning = false;            if(!isBeginning)                System.out.print(num[i]);            }        }    //打印从1到最大的n位数    public static void Test(int n) {        if(n <= 0)            System.out.println("Input Error!");        int[] num = new int[n];        while(!Increment(num)){            PrintNumber(num);            System.out.println();        }    }    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        System.out.print("Please input number:");        int num = scanner.nextInt();        Test(num);        scanner.close();    }}
原创粉丝点击