标签:
1 /* 2 *题目要求:输入n,按顺序打印1到最大的n位十进制数 3 *比如:输入3,则打印1,2,...999 4 *更新日期:2015-06-15 5 */ 6 7 //注意题目中的陷阱,当n稍微大一点的时候会溢出,所以使用字符串输出的策略 8 9 #include<iostream> 10 using namespace std; 11 12 void 13 Print_number_byte(unsigned char num) 14 { 15 if(num<1)return ; 16 char num_ch[11]="0123456789"; 17 unsigned char np[num]; 18 19 for(int i=0;i<num;i++) 20 { 21 np[i]=0; 22 } 23 while(1) 24 { 25 for(int i=0;i<num;i++)//显示数据 26 { 27 cout<<num_ch[np[i]]; 28 } 29 cout<<","; 30 if(np[num-1]==9) 31 {//进位问题 32 np[num-1]=0; 33 for(int i=num-2;i>=0;i--) 34 {//直到遇见第一个不是9的 35 if(np[i]==9) 36 { 37 if(i==0) return ; 38 np[i]=0; 39 continue; 40 } 41 else 42 { 43 np[i]++; 44 break; 45 } 46 } 47 } 48 else np[num-1]++; 49 } 50 } 51 52 int main(int argc, char *argv[]) 53 { 54 unsigned char num=4; 55 Print_number_byte(num); 56 }
标签:
原文地址:http://www.cnblogs.com/yangdadahome/p/4579096.html