题目:输入数字n,按顺序打印出1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数即999。
在不考虑大数的情况下,直接循环打印直到最大的数。
在考虑大数的情况下:
1.开辟n+1个空间的char型数组来保存数字,最后一位赋值为‘ ’,并且数字最高位对应数组的0下标;
2.构建函数bool Increment(char * number)实现数字的加1操作并且判断是否溢出;
3.循环调用Increment函数,溢出则终止循环,否则调用Print函数打印数字。
代码如下:
void printtomax(int n) { try { if(n<=0) throw exception("参数不合法!n>0"); char *number=new char[n+1]; memset(number,'0',n*sizeof(char));//先初始化在给最后一位赋值‘ ’ number[n]='