题目:输入数字n,按照打印出从1最大的n位10进制数。比如3,则
打印出1、2、3一直到最大的3位数即999
1.你觉得如果面试会有这么简单的题,那
只能说明你---太天真。
2.n=3尚可,如果n=30 300呢有这样的内置数据类型
能包括这么大的数吗?
3.说白了,这道题就是考察用字符串模拟大数。
算法思想如下:
1.分配大小为n+1个字符的内存 初始化为'0' 最后一个' '
2.模拟加法,每一位字符上的范围为'0'-'9'当超过之后进位,
3.结束条件,当第一位字符发生进位时说明已经遍历到最大了,结束
代码如下:
1 #include <iostream> 2 using namespace std; 3 4 bool add(char *nums); 5 void Print1ToMaxOfNDigits(int n) 6 { 7 if(n<=0) 8 return; 9 10 char *nums=new char[n+1]; 11 memset(nums,'0',n); 12 nums[n]='