【剑指offer系列】 打印1到最大的n位数___12
2016-04-07 15:13
447 查看
题目描述:
输入数字n,顺序打印从1到最大的n位数
示例:
输入3,则打印1、 2 、3 …… 999
分析:
本题的陷阱就是n可能很大,用long long也会溢出。
因此要将数字转换成字符串表示,这样就不会溢出。 所以我们必须自己实现字符串的加法
代码:
输入数字n,顺序打印从1到最大的n位数
示例:
输入3,则打印1、 2 、3 …… 999
分析:
本题的陷阱就是n可能很大,用long long也会溢出。
因此要将数字转换成字符串表示,这样就不会溢出。 所以我们必须自己实现字符串的加法
代码:
void add(string& str){ int carry=1; for(int i=str.size()-1;i>=0;--i){ int num=(str[i]-'0')+carry; carry=num/10; str[i]=num%10+'0'; } if(carry==1){ str='1'+str; } } void print1ToMax(int n){ string str="1"; while(str.size()<=n){ cout<<str<<endl; add(str); } }
相关文章推荐
- javascript闭包详解
- php的date对象与javascript的Date对象区别
- 通过原生js添加div和css
- AngularJs 过滤器
- 制作单页的动画插件
- ReactNative学习十三-Props和State
- js正则验证之不能使用相同字符
- Sass编译Css
- JQuery筛选器全系列介绍
- 去掉<textarea>中的html标签
- Gson使用总结
- jquery Ajax提交表单(使用jquery Ajax上传附件)
- 原生js 学习之array 数组
- node.js第一步
- JS学习1(JS实现,JS引入)
- 拖拽
- JS逻辑运算符&&与||的妙用
- 一个简单的jsp+servlet实例,实现简单的登录
- css Masks
- Hadoop集群所有的DataNode都启动不了解决办法