打印从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; }