题解 | #高精度整数加法#
高精度整数加法
http://www.nowcoder.com/practice/49e772ab08994a96980f9618892e55b6
模拟加法运算。零空间开销!
# include<bits/stdc++.h> using namespace std; int main() { string s1, s2; getline(cin, s1); getline(cin, s2); int len1 = s1.length()-1, len2 = s2.length()-1; string ans = ""; int carry = 0; while(len1>=0&&len2>=0) { int a = s1[len1]-'0', b = s2[len2]-'0'; int sum = carry+a+b; ans.insert(0, to_string(sum%10)); carry = sum/10; len1--,len2--; } while(len1>=0) { int a = s1[len1]-'0'; int sum = carry+a; ans.insert(0, to_string(sum%10)); carry = sum/10; len1--; } while(len2>=0) { int a = s2[len2]-'0'; int sum = carry+a; ans.insert(0, to_string(sum%10)); carry = sum/10; len2--; } if(carry>0) ans.insert(0, to_string(carry)); cout<<ans<<endl; return 0; }