您的位置:首页 > Web前端

【剑指offer系列】 打印1到最大的n位数___12

2016-04-07 15:13 447 查看
  题目描述:

  输入数字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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: