P1601 A+B Problem(高精) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
思路:把数字当做字符串数组处理,一层一层进位计算
代码:
#include<iostream>
using namespace std;
string add(string a, string b)
{
int lena = a.size();
int lenb = b.size();
int len;
if (a.size() > b.size())//对齐
{
for (int i = 0; i < (lena - lenb); i++)
b = "0" + b;
len = lena;
}
else{
for(int i = 0; i < (lenb - lena); i++)
a = "0" + a;
len = lenb;
}
int temp,cf = 0;
string str;
for (int i = len - 1; i >= 0; i--)//加法
{
temp = a[i] - '0' + b[i] - '0' + cf;
cf = temp / 10;
temp %= 10;
str = char(temp + '0') + str ;
}
if (cf != 0) str = char(cf + '0') + str;//进位
return str;
}
int main()
{
string a, b;
cin >> a >> b;
cout << add(a, b);
return 0;
}
总结:
高精度不太熟练