大数求和
发布时间:2020-12-14 01:36:25 所属栏目:大数据 来源:网络整理
导读:描述:? 给定两个非常大的正整数A和B,位数在50至100之间。求C=A+B; 题目类别: 字符串? 难度: 中级? 运行时间限制: 10Sec? 内存限制: 128MByte? 输入:? 因为A和B很大,从高位到低位,以字符串的形式输入两行数字A和B。A和B的位数在50至100之间。 输出:? 以
描述:?给定两个非常大的正整数A和B,位数在50至100之间。求C=A+B; 题目类别: 字符串? 输入:?因为A和B很大,从高位到低位,以字符串的形式输入两行数字A和B。A和B的位数在50至100之间。 输出:?
样例输入:?22222222222222222222222222222222222222222222222222222221122222222222222222222222222222222222222222222222222
样例输出:?33333333333333333333333333333333333333333333333333代码:
#include<iostream> #include<string> using namespace std; string add(string s1,string s2) { int length1 = s1.size(); int length2 = s2.size(); if (length1 == 0 && length2 !=0) { return s2; } if (length1 != 0 && length2 == 0) { return s1; } if (length1 == 0 && length2 == 0) { return "0"; } string result = ""; int c = 0,num1,num2,sum; for (int i = length1 - 1,j = length2 - 1; i >= 0 || j >= 0 || c > 0; i--,j--) { num1 = i >= 0 ? s1[i] - '0' : 0; num2 = j >= 0 ? s2[j] - '0' : 0; sum = num1 + num2 + c; c = sum / 10; result = result.insert(result.begin(),sum % 10 + '0'); } return result; } int main(){ string s1; string s2; while (cin>>s1>>s2) { cout<<add(s1,s2)<<endl; } return 0; } 结果:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |