[剑指offer][面试题12]打印1到最大的n位数

来源:互联网 发布:node forever 启动 编辑:程序博客网 时间:2024/05/18 03:50

题目:输入数字n,按顺序打印出从1最大的n位十进制数。例如输入3,则打印出1,2,3,....,一直到最大的3位数即999。

#include <iostream>using namespace std;void printDigitsRecursively(char *str, int N, int iIdx){if (iIdx>N-1){bool bSkipZeros = true;while (*str!='\0'){if (*str=='0' && bSkipZeros){str++;continue;}bSkipZeros = false;cout<<*str;str++;}cout<<endl;return;}for (int i=0; i<10; i++){str[iIdx] = i + '0';printDigitsRecursively(str, N, iIdx+1);}}void printFrom1ToMaxofNDigits(int n){if (n<=0){return;}char *str = new char[n+1];str[n] = '\0';printDigitsRecursively(str, n, 0);delete [] str;}int main(){printFrom1ToMaxofNDigits(3);}


原创粉丝点击