剑指第17题:打印从1到最大的n位数——大数问题

用字符串数组表示

#include                                                                                                                                                                                                     
#include
void printnumber(char* number,int length);
void Print1tomaxofn(char* number,int length,int index);
void Printstart(int n){
    if(n<=0)
        return;
    char * number = new char[n+1];
    number[n]='\0';
    for(int i=0;i<10;i++){
        number[0]=i+'0';
        Print1tomaxofn(number,n,0); //第一位上0-9
    }
    delete[] number;
}
void Print1tomaxofn(char* number,int length,int index){

    if(index == length-1)                        //最后一位已完成 可打印
    {
        printnumber(number,length);
        return;
    }
    for(int i=0;i<10;i++){
        number[index+1]=i+'0';
        Print1tomaxofn(number,length,index+1); //递归延伸至最后一位
    }
    return;
}
void printnumber(char* number,int length){
    int firstnozero = 0;
    for(int i=0;i

 

你可能感兴趣的:(剑指offer2)