剑指Offer系 4000 列-面试题12:打印1到最大的n位数
2017-02-07 15:10
721 查看
题目:输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的三位数即999。
PS:代码没看懂
PS:代码没看懂
#include <iostream> #include "string.h" using namespace std; void PrintNumber(char *number) { bool isBeginning0 = true; int length = strlen(number); for(int i = 0; i < length; ++i) { if(isBeginning0 && number[i] != '0') { isBeginning0 = false; } if(!isBeginning0) { cout << number[i]; } } cout << endl; } void Print1ToMaxOfN(char *number, int length, int index) { /// 从个位开始打印,如果当前数增加到了几位数,就打印 if(index == length - 1) { PrintNumber(number); return; } for(int i = 0; i < 10; ++i) { number[index + 1] = i + '0'; Print1ToMaxOfN(number, length, index + 1); } } void Print1ToMaxOfNDigits(int n) { if(n <= 0) return; char *number = new char[n+1]; for(int i = 0; i < 10; ++i) { number[0] = i + '0'; Print1ToMaxOfN(number, n, 0); } delete[] number; } int main() { Print1ToMaxOfNDigits(0); Print1ToMaxOfNDigits(1); Print1ToMaxOfNDigits(2); Print1ToMaxOfNDigits(3); Print1ToMaxOfNDigits(4); return 0; }
相关文章推荐
- 剑指Offer:面试题12 打印1到最大的n位数
- 剑指offer_面试题12_打印1到最大的n位数(大数问题)
- 剑指Offer面试题12打印1到最大的n位数,面试题13在O(1)时间删除链表结点
- 剑指offer 面试题12 打印1到最大的N位数
- 【剑指Offer学习】【面试题12 :打印1 到最大的n 位数】
- 剑指offer--面试题12:打印1到最大的n位数--Java实现
- 剑指Offer之面试题12:打印1到最大的N位数
- 【剑指offer】面试题12、打印 1 到最大的 n 位数
- 剑指offer面试题12——打印1到最大的n位数
- 剑指offer_面试题12_打印1到最大的n位数(大数问题)
- 剑指offer之面试题12:打印1到最大的n位数
- 【剑指offer】面试题12:打印1到最大的n位数
- 剑指offer-面试题12-打印1到最大的n位数
- 剑指offer面试题12 打印1到最大的n位数
- 剑指offer-面试题12-打印1到最大的n位数
- 剑指offer编程题Java实现——面试题12打印1到最大的n位数
- 【剑指offer 面试题12】打印1到最大的n位数
- 剑指offer-面试题12:打印1到最大的n位数
- [剑指offer][面试题12]打印1到最大的n位数
- 剑指Offer面试题12:打印1到最大的n位数 Java实现