海底捞高精(悬关)
查看原帖
海底捞高精(悬关)
959582
dongrunxuan楼主2024/1/6 15:03

rt,高精乘

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e3+10;
int a[maxn],b[maxn],c[maxn];
int operator  * (string q,string w)
{
	int la=q.size(),lb=w.size(),lc=la+lb;
	for(int i=la-1;i>=0;i--)
	{
		a[la-1-i]=q[i]-'0';
	}
	for(int i=lb-1;i>=0;i--)
	{
		b[lb-1-i]=w[i]-'0';
	}
	for(int i=0;i<la;i++)
	{
		for(int j=1;j<lb;j++)
		{
			c[i+j]+=a[i]*b[j];
			c[i+j+1]+=c[i+j]/10;
			c[i+j]%=10;
		}
	}
	while(lc&&c[lc]==0)
	{
		lc--;
	}
	return lc;
}
int main()
{
	string q,w;
	cin>>q>>w;
	int lc=q*w;
	for(int i=lc;i>=0;i--)
	{
		cout<<c[i];
	}
	return 0;
}
2024/1/6 15:03
加载中...