递归打印1到n位数
Exp:
#include<iostream>
#include<string>
using namespace std;
void printNumber(string number){
bool isbegin0 = true;
for (int i = 0; i < number.size(); i++){
if (isbegin0&&number[i] != '0'){
isbegin0 = false;
}
if (!isbegin0){
cout << number[i];
}
}
cout << "\t";
}
void print1tonre(string number, int length, int index){
if (index == length - 1){
printNumber(number);
return;
}
for (int i = 0; i < 10; i++){
number[index + 1] = i + '0';
print1tonre(number, length, index + 1);
}
}
void print1ton(int n){
if (n <= 0){
return;
}
string number(n, '0');
for (int i = 0; i < 10; i++){
number[0] = i + '0';
print1tonre(number, n, 0);
}
}
int main(){
int n;
cout << "Please input a number:" ;
while (cin >> n){
cout << endl;
print1ton(n);
}
return 0;
}