1 solutions

  • 0
    @ 2024-12-10 23:27:11

    C++ :

    #include <cstdio>
    #include <cstring>
    #include <cstdlib>
    #include <algorithm>
    #include <cmath>
    #include <iostream>
    using namespace std;
    char st[400];
    struct node
    {
    	int len;
    	int a[401];
    	node()
    	{
    		len=0;
    		memset(a,0,sizeof(a));
    	}
    };
    node Cf(node n1,node n2)
    {
    	node no;
    	int i,j;
    	no.len=n1.len+n2.len-1;
    	for(i=1;i<=n1.len;i++)
    	{
    		for(j=1;j<=n2.len;j++)
    		{
    			no.a[i+j-1]+=n1.a[i]*n2.a[j];
    		}	
    	}
    	for(i=1;i<=no.len;i++)
    	{
    		no.a[i+1]+=no.a[i]/10;
    		no.a[i]%=10;
    	}
    	i=no.len;
    	while(no.a[i+1]>0)
    	{
    		i++;
    		no.a[i+1]+=no.a[i]/10;
    		no.a[i]%=10;
    	}
    	no.len=i;
        while(no.a[no.len]==0&&no.len>1) no.len--;
    	return no;
    }
    int main()
    {
    	//freopen("a.in","r",stdin);
    	//freopen("a.out","w",stdout);
    	int i,j;
    	node ans,ni,nj;
    	scanf("%s",st);
    	ni.len=strlen(st);
    	for(i=1;i<=ni.len;i++) ni.a[i]=st[ni.len-i]-'0';
    	scanf("%s",st);
    	nj.len=strlen(st);
    	for(i=1;i<=nj.len;i++) nj.a[i]=st[nj.len-i]-'0';
    	ans=Cf(ni,nj);
    	for(i=ans.len;i>=1;i--) printf("%d",ans.a[i]);
    	printf("\n");
    	return 0;
    }
    
    
    • 1

    Information

    ID
    601
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By