剑指offer第二版-17.打印从1到最大的n位数

本系列导航:剑指offer(第二版)java实现导航帖

面试题17:打印从1到最大的n位数

题目要求:
比如输入2,打印1,2......98,99;

解题思路:
此题需要考虑大数问题。本帖是使用字符串模拟数字的加法。

package chapter3;
/**
 * Created by ryder on 2017/7/6.
 *
 */
public class P114_Print1ToMaxOfNDigits {
    //在字符串上模拟加法
    public static void print1ToMaxOfNDigits(int num){
        if(num<=0)
            return;
        StringBuilder number = new StringBuilder(num);
        for(int i=0;i=0;i--){
            if(str.charAt(i)<'9' && str.charAt(i)>='0'){
                str.setCharAt(i,(char)(str.charAt(i)+1));
                return true;
            }
            else if(str.charAt(i)=='9'){
                str.setCharAt(i,'0');
            }
            else{
                return false;
            }
        }
        return false;
    }
    public static void printNumber(StringBuilder number){
        boolean flag = false;
        for(int i=0;i

运行结果

1
2
......
99

你可能感兴趣的:(剑指offer第二版-17.打印从1到最大的n位数)