首页 > 代码库 > ACM——大数相加

ACM——大数相加

大数加法

时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte
总提交:2085            测试通过:543

描述

 

求两个非负整数(1000位以内)的和。

输入

两个非负整数(1000位以内),以空格分隔。

输出

 

两个非负整数的和。

样例输入

111111111111 222222222222

样例输出

333333333333

提示

 

题目来源

GUOJ

 

#include<iostream>#include<string>using namespace std;int main(){    char str[1001];    char str2[1001];    for(int i=0;i<1001;i++){        str[i]=0;        str2[i]=0;    }    int index=1000;    int value=http://www.mamicode.com/0;    string stp;    cin>>stp;    value=stp.length()-1;    while(value>=0){        str[index--]=stp[value--];    }    int index2=1000;    string stp2;    cin>>stp2;    value=stp2.length()-1;    while(value>=0){        str2[index2--]=stp2[value--];    }    char result[1001];    int plus=0;    for(int i=1000;i>=0;i--){        int temp=((str[i]-0)+(str2[i]-0)+plus)%10;        plus= ((str[i]-0)+(str2[i]-0)+plus)/10;        result[i]=(char)temp+0;    }    int pos=0;    while(result[pos]==0){        pos++;    }    for(;pos<1001;pos++)        cout<<result[pos];    cout<<endl;    return 0;}