麻烦各位神犇看看这个代码改怎么改,第5个测试点一直不通过,本蒟蒻拜托各位了 想要解决高精度加法,疑似是栈溢出,但显示的是WA 题号:P1601 A+B Problem(高精)
#include <iostream>
using namespace std;
#include<string>
void reverse(string &a)//倒序数组函数
{
char temp;
for(int i=0;i<a.size()/2;i++)
{
temp=a[i];
a[i]=a[a.size()-i-1];
a[a.size()-i-1]=temp;
}
}
int result[505]={0};
string a,b;
int main()
{
//string a,b;
cin>>a>>b;
int strenth=max(a.size(),b.size()),minn=min(a.size(),b.size());
reverse(a);//给a,b倒序
reverse(b);
cout<<a<<endl<<b<<endl;
//int result[strenth]={0};
for(int i=0;i<minn;i++)
{
result[i]+=a[i]+b[i]-2*'0';//位数相同时,将a与b同位相加
if(result[i]>=10&&i<strenth-1)//非首位逢10进1
{
result[i+1]++;
result[i]-=10;
}
cout<<a[i]<<" "<<b[i]<<" "<<result[i]<<endl;
}
for(int i=minn;i<strenth;i++)
{
result[i]+=a[i]+b[i]-'0';//位数不同时,用较大数
if(result[i]>=10&&i<strenth-1)//非首位逢10进1
{
result[i+1]++;
result[i]-=10;
}
cout<<a[i]<<" "<<b[i]<<" "<<result[i]<<endl;
}
for(int i=strenth-1;i>=0;i--)//倒序输出
{
cout<<result[i];
}
return 0;
}