面试题12—打印1到最大的n位数

来源:互联网 发布:淘宝上的dota2 编辑:程序博客网 时间:2024/06/06 19:20

题目:输入数字n,按顺序打印出从1到最大的n位十进制数。

代码示例:

#include<iostream>using namespace std;int FirstIndexNoZero(int a[], int n){for (int i = 0; i < n; i++){if (a[i] != 0)return i;}return -1;}void PrintFromoneToN(int n){if (n <= 0)return;if (n == 1){for (int i = 1; i <= 9; i++)cout << i << endl;return;}//int *array = new int[n];memset(array, 0, n*sizeof(array));while (1){int i = n - 1;array[i] += 1;for (int j = i; j > 0; j--){if (array[j] == 10){array[j] = 0;array[j - 1] += 1;}}if (array[0] == 10)return;int index = FirstIndexNoZero(array, n);for (int i = index; i < n; i++){cout << array[i];}cout << endl;}delete[] array;}void main(){int n;cout << "输入n位数:";cin >> n;PrintFromoneToN(n);}


阅读全文
0 0
原创粉丝点击