今天的问题在于高精计算大数的加和乘积的时候,string转换成int类型的时候没有进行正确的转换导致总是算不对。
转换的时候注意后面要加上-‘0’
#include<iostream>
#include<vector>
#include<cstring>
#include<algorithm>
using namespace std;
int ans[501];
int main()
{
string m, n;
cin >> m >> n;
int q = m.size();
int p = n.size();
int M = max(p, q);
int jinwei = 0;
for(int i = M; i >= 0; i--)
{
int num1, num2;
if(q > 0)
{
num1 = m[q - 1] - '0';
q--;
}
else
num1 = 0;
if(p >0)
{
num2 = n[p - 1] - '0';
p--;
}
else
num2 = 0;
ans[i] = (num1 + num2 + jinwei) % 10;
jinwei = (num1 + num2 + jinwei) / 10;
}
if(ans[0] != 0)
{
for(int i = 0; i <= M; i++)
{
cout << ans[i];
}
}
else
{
for(int i = 1; i <= M; i++)
{
cout << ans[i];
}
}
return 0;
}