面试题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 }
原文地址:https://www.cnblogs.com/wanderingzj/p/5352410.html