大数加法
发布时间:2020-12-14 02:40:56 所属栏目:大数据 来源:网络整理
导读:题目描述 求两个非负整数( 1000 位以内)的和。 输入 两个非负整数(1000位以内),以空格分隔。 输出 两个非负整数的和。 样例输入 222222222211?222222222222 样例输出 333333333333 #includeiostream#includestringusing namespace std;void SumOfLargeN
题目描述 求两个非负整数(1000位以内)的和。 输入 两个非负整数(1000位以内),以空格分隔。 输出
两个非负整数的和。 样例输入 222222222211?222222222222 样例输出 333333333333
#include<iostream> #include<string> using namespace std; void SumOfLargeNumbers(string str1,string str2) { int length1=str1.size(),length2=str2.size(); int length=length1>length2?length1:length2; string str3(length,'0'); if(length1<length) { for(int i=0;i<(length-length1);++i) str1='0'+str1; } if(length2<length) { for(int i=0;i<(length-length2);++i) str2='0'+str2; } int carry=0; for(int i=length-1;i>=0;--i) { str3[i]=((str1[i]-'0')+(str2[i]-'0')+carry)%10+'0'; carry=((str1[i]-'0')+(str2[i]-'0')+carry)/10; } if(carry) { char c=carry+'0'; str3=c+str3; } cout<<str3<<endl; } int main() { string str1,str2; while(cin>>str1>>str2) SumOfLargeNumbers(str1,str2); return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |