站外题求调
  • 板块题目总版
  • 楼主x1007
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/8/3 19:22
  • 上次更新2024/8/3 20:31:11
查看原帖
站外题求调
1109270
x1007楼主2024/8/3 19:22

是高精度乘法但在洛谷对在那就不对

#include <bits/stdc++.h>
using namespace std;
char s1[10005],s2[10005];
int a[10005],b[10005],c[10005];
int main()
{
	int la,lb,lc;
	scanf("%s",s1);
	scanf("%s",s2);
	la=strlen(s1);
	lb=strlen(s2);
	if(s1[0]=='0'||s2[0]=='0')
    {
        cout<<0;
        return 0;
	}
	for(int i=0;i<la;i++)
		a[la-i]=s1[i]-'0';
	for(int i=0;i<lb;i++)
		b[lb-i]=s2[i]-'0';
	lc=la+lb;
	for(int i=1;i<=la;i++){
		for(int j=1;j<=lb;j++){
			c[i+j-1]+=a[i]*b[j];
		}	
	}
	for(int i=1;i<lc;i++)
	{
		if(c[i]>9)
		{
		c[i+1]+=c[i]/10;
		c[i]%=10;
		}
	}
	while(c[lc]==0&&lc>1)lc--;
	for(int i=lc;i>0;i--)
	{
		printf("%d",c[i]);
	}
	return 0;
}
2024/8/3 19:22
加载中...