8 条题解
-
1
I like "高精"
#include <iostream> #include <string> #include <vector> using namespace std; vector<int> stringToVector(const string& num) { vector<int>digits(num.length()); for (int i=0;i<num.length();++i) { digits[num.length()-i-1]=num[i]-'0'; } return digits; } string highPrecisionAddition(const string& num1, const string& num2) { vector<int>digits1=stringToVector(num1); vector<int>digits2=stringToVector(num2); int maxLength=max(digits1.size(),digits2.size()); vector<int> result(maxLength+1,0); for (int i=0; i<maxLength;++i) { if (i<digits1.size()) result[i]+=digits1[i]; if (i<digits2.size()) result[i]+=digits2[i]; if (result[i] >=10) { result[i+1]+=result[i]/10; result[i]%=10; } } string sum; bool leadingZero = true; for (int i=result.size()-1;i>=0;--i) { if (result[i]==0&&leadingZero&&i!=0) continue; leadingZero=false; sum+=result[i]+'0'; } return sum; } int main() { string num1, num2; cin>>num1>>num2; cout<<highPrecisionAddition(num1, num2)<<endl; return 0; }
信息
- ID
- 1
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- 递交数
- 568
- 已通过
- 230
- 上传者