80分蒟蒻代码求调
  • 板块灌水区
  • 楼主3blue1green
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/3 19:45
  • 上次更新2024/8/3 20:56:01
查看原帖
80分蒟蒻代码求调
1364032
3blue1green楼主2024/8/3 19:45

麻烦各位神犇看看这个代码改怎么改,第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;
 } 
2024/8/3 19:45
加载中...