打印从1到最大的n位数

  思路:两种解法,一种当做大数问题处理,大数加法,进位;另一种当做排列问题处理,递归。

void myPrint(int n, char *res, int k)
{
    if(k==n)
    {
        int i=0;
        while(res[i]=='0')++i;
        cout<<(res+i)<<endl;
    }else{
        for(int i=0; i<=9; ++i)
        {
            res[k]=i-0+'0';
            myPrint(n, res, k+1);
        }
    }
}
void printToMax(int n)
{
    char *res=new char[n+1];
    res[n]='\0';
    myPrint(n, res, 0);
}
int main()
{
    printToMax(3);
    return 0;
}

 

posted @ 2017-12-22 10:38  jeysin  阅读(115)  评论(0编辑  收藏  举报