求助!0pts
  • 板块P1303 A*B Problem
  • 楼主Greeper
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/9/22 14:42
  • 上次更新2024/9/22 16:31:20
查看原帖
求助!0pts
1311900
Greeper楼主2024/9/22 14:42

rt

#include<bits/stdc++.h>
using namespace std;
int a[2050],b[2050],c[4100],la,lb;
string sa,sb;
int mine(int* a,int* b,int *c,int la,int lb)
{
    int lc=la+lb;
	for(int i=0;i<=la;i++)
	    for(int j=0;j<lb;j++)
	        c[i+j]=a[i]*b[j];
	for(int i=0;i<lc;i++)
	{
		c[i+1]+=c[i]/10;
		c[i]%=10;
		if(i==lc-1)
		{
			if(c[i+1])
			{
				lc++;
			}
		}
	}
	int i=lc-1;
	while(!c[i])
	{
	    lc--;
	    i--;
	}
	return lc;
}
int main()
{
    cin>>sa>>sb;
	la=sa.size(),lb=sb.size();
    for(int i=la-1;i>=0;i--)
    {
    	a[la-i-1]=sa[i]-'0';
	}
	for(int i=lb-1;i>=0;i--)
    {
    	b[lb-i-1]=sb[i]-'0';
	}
	int lc=mine(a,b,c,la,lb);
	for(int i=lc-1;i>=0;i--)
	{
	    cout<<c[i];
	}
	return 0;
}

2024/9/22 14:42
加载中...