打印1到最大的N位整数

来源:互联网 发布:大数据精准营销的案例 编辑:程序博客网 时间:2024/05/01 02:21

输入一个3,则需要打印出0~999;输入一个4,则需要打印出0~9999
,这里输入数的大小没有限制,因此我们要考虑到大数的问题。所以我们使用字符串数组来保存所要打印的数,因此程序关键是让字符串数组循环自增。
打印的核心代码:

public void printToMax(){    //将字符串数组中的值初始化为零    for(int i = 0 ; i < s.length ; i++) {        s[i] = "0";    }    for(int i = s.length - 1 ; i >= 0 ; i++){        //如果小于等于9,就应该打印出该数        while(Integer.parseInt(s[i]) <= 9){            if(i == s.length - 1)                print(s);            //自增            s[i] = Integer.parseInt(s[i]) + 1 + "";            //判断s[i]是否是进位            if(Integer.parseInt(s[i]) <= 9 && i != s.length - 1)                //进位完又从个位打印                i = s.length - 1;           }        //已经是最高位,进不了位,结束退出循环        if(i == 0)            break;        //要进位将前位设置为零        s[i] = "0";    }}
public void print(String[] s){    boolean flag = false;    for(int i = 0 ; i < s.length - 1 ; i++){        if(i == s.length - 1){            //打印出零            System.out.print(s[i]);        }        //从高位到低位找到第一个大于零的数        if(Integer.parseInt(s[i]) > 0 || flag){            if(!flag)                flag = true;            System.out.print(s[i]);        }    }    System.out.println();}
Main.javapublic class Main{    public static void main(String[] args){        PrintToMax ptm = new PrintToMax(3);        ptm.printToMax();    }}
0 0
原创粉丝点击