因为int不行,所以我一气之下用了高精度
查看原帖
因为int不行,所以我一气之下用了高精度
1429160
Asher0115楼主2024/8/28 21:33
#include <bits/stdc++.h>
#define endl "\n"
using namespace std;
char a[501],b[501];
int a1[501],b1[501],res[251001],lena,lenb,num,in;
int main()
{
    cin>>a>>b;
	lena=strlen(a); 
	lenb=strlen(b);
	for(int i=0;i<lena;i++)a1[lena-1-i]=a[i]-'0';
	for(int i=0;i<lenb;i++)b1[lenb-i-1]=b[i]-'0';
	for(int j=0;j<lenb;j++) 
	{
        in=0;
		for(int i=0;i<lena;i++) 
		{
            res[i+j]=a1[i]*b1[j]+in+res[i+j];
			in=res[i+j]/10;
			res[i+j]%=10;
		}
		res[lena+j]=in;
	}	
	num=lena+lenb; 
	while(res[num-1]==0&&num>1)num--;
	for(int i=num-1;i>=0;i--)cout<<res[i];
	return 0;
}
2024/8/28 21:33
加载中...