打印1到最大的n位数
2016-06-19 01:29
183 查看
解析:
//打印1到最大的n位数 //最开始是看剑指offer实现的,但看着有点晕,于是自己经常调试后总结出来的 //所以如果看不怎么懂的时候将代码写出来然后调试,调试后就知道它是怎么运行的 //注释的部分是剑指offer上实现的, bool increment(char *str) { //bool is_over_flow=false; int tmp=0; //int nTake=0; int len=strlen(str); for(int i=len-1; i>=0; --i) { int sum=str[i]-'0'+tmp; //int sum=str[i]-'0'+nTake; if(i==len-1) sum++; if(sum >=10) { if(i==0) return true; //is_over_flow=true; else { sum-=10; tmp=1; //nTake=1; str[i]='0'; } }else { str[i]='0'+sum; return false; //break; } } return true; //return is_over_flow; } void print_str(char *str) { bool flag=true; int len=strlen(str); for(int i=0; i<len; ++i) { if(flag && str[i] !='0') flag=false; if(!flag) printf("%c",str[i]); } printf("\t"); } void print_max(int n) { if(n<=0) return; char *str=new char[n+1]; memset(str,'0',sizeof(str)); str ='\0'; while(!increment(str)) { print_str(str); } delete []str; } //最直接的方法-->没有考虑n很大的时候 void print_int(int n) { int number=1; int i=0; while(i++ <n) number*=10; for(i=1;i<number; ++i) printf("%d ",i); }
相关文章推荐
- lsd-slam源码解读第二篇:DataStructures
- 杂学-Fragment
- 28. Implement strStr() [easy] (Python)
- [Java] 继承中,父类被覆盖的成员变量、方法的可访问性
- 转发和重定向的区别
- pandas 透视表 pivot_table
- 工作随想
- Android中关于Dialog滑动弹出的简单动画的设置
- 【leetCode】Binary Tree Zigzag Level Order Traversal python实现
- SVN-之Clean up失败
- 内存泄漏和内存溢出的区别
- 注意力不集中是因为你没有紧迫感
- dpkg status database is locked by another process
- Vagrant和VirtualBox搭建基于windows的Ruby on Rails基本开发环境(共享文件夹配置)
- Microsoft资源
- C002-CPP-用malloc()存储任意长度的键入字符串
- 原码、反码、补码知识详细讲解(此作者是我找到的讲的最细最明白的一个)
- Arduino 卡片1和2闪烁及SOS求救信号灯设计
- 主元素问题
- ImageMagick还是GraphicsMagick?