面试题12 打印1到最大的N位数
题目描述:
给定一个数字N,打印从1到最大的N位数。
1 #include<iostream> 2 using namespace std; 3 4 void Print(int k, int n, int x[]) { 5 if (n == 0) 6 { 7 cerr << "error" << endl; 8 exit(0); 9 } 10 else 11 { 12 if (k >= n) 13 { 14 int flag = 0; 15 for (int i = 0; i < k; i++) 16 { 17 if (x[i] == 0 && flag == 0) { 18 continue; 19 } 20 else { 21 flag = 1; 22 cout << x[i]; 23 } 24 } 25 if (flag != 0) 26 { 27 cout << endl; 28 } 29 } 30 else 31 { 32 for (int i = 0; i <= 9; i++) { 33 x[k] = i; 34 Print(k + 1, n, x); 35 } 36 } 37 } 38 } 39 int main() 40 { 41 int n; 42 cin >> n; 43 int *x = new int[n]; 44 for (int i = 0; i < n; i++) 45 x[i] = 0; 46 Print(0, n, x); 47 return 0; 48 }