50分高精减法求调
查看原帖
50分高精减法求调
1064318
Prefectmakesprefect楼主2025/2/3 14:50
#include<bits/stdc++.h>
#define int long long

using namespace std;

string a,b;

int lea,leb,an[505],bn[505],cn[505],ans=0;

void clear(int a[]) {
  for (int i = 0; i < 505; ++i) a[i] = 0;
}

void add(int an[],int bn[],int cn[])
{
	clear(cn);
	
	for(int i=0;i<503;i++)
	{
		cn[i]+=an[i]+bn[i];
		if(cn[i]>=10)
		{
			cn[i]-=10;
			cn[i+1]+=1;
		}
	}
}

void print(int cn[])
{
	int i;
	for(i=503;i>=0;i--)
	{
		if(cn[i]!=0)	break;
	}
	for(;i>=0;i--)	cout<<cn[i];
}

signed main(){
	cin>>a>>b;
	lea=a.size();
	leb=b.size();
	for(int i=0;i<lea;i++)
	{
		an[lea-i-1]=a[i]-'0';
	}
	for(int i=0;i<leb;i++)
	{
		bn[leb-i-1]=b[i]-'0';
	}
	add(an,bn,cn);
	print(cn);
	return 0;
}
2025/2/3 14:50
加载中...