码迷,mamicode.com
首页 > 其他好文 > 详细

输入n,按顺序打印1到最大的n位十进制数

时间:2015-06-15 21:54:56      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:

 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 }

 

输入n,按顺序打印1到最大的n位十进制数

标签:

原文地址:http://www.cnblogs.com/yangdadahome/p/4579096.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!