高精加求助
  • 板块题目总版
  • 楼主niedie
  • 当前回复9
  • 已保存回复9
  • 发布时间2021/8/14 21:15
  • 上次更新2023/11/4 10:39:20
查看原帖
高精加求助
299822
niedie楼主2021/8/14 21:15
#include <bits/stdc++.h>
using namespace std;
string a,s;
int d[501],f[501],ad[501],af[501],lena,lens,ans[501],aans[501],x=0,y=1; 
int main()
{
	cin>>a>>s;
	lena=a.length();
	lens=s.length();
	for(int i=0;i<lena;i++)d[i]+=a[i]-'0';
	for(int i=0;i<lens;i++)f[i]+=s[i]-'0';
	for(int i=0;i<lena;i++)ad[i]=d[lena-i-1];
	for(int i=0;i<lens;i++)af[i]=f[lens-i-1];
	for(int i=0;i<max(lena,lens);i++)
	{
		ans[i]=(ad[i]+af[i])%10+x;
		x=(ad[i]+af[i])/10;
		if(ad[i]+af[i]>=10)ans[i+1]=1;
	}
    for(int i=0;i<max(lena,lens)+1;i++)aans[i]=ans[max(lena,lens)-i];
    if(aans[0]==0)for(int i=1;i<max(lena,lens)+1;i++)cout<<aans[i];
    else for(int i=0;i<max(lena,lens)+1;i++)cout<<aans[i];
}

数据一大就错了,但是9+9,11+9都对,看了答案后感觉是进位问题。 谢谢!

2021/8/14 21:15
加载中...