最后一个点为什么过不去啊....

P1303 A*B Problem

SuperJ @ 2018-11-12 19:13:57

#include<bits/stdc++.h>
using namespace std;
char num1[2005],num2[2005];
int com1[2005],com2[2005],re[4005],ans[4005];
int main()
{
    scanf("%s",&num1);
    scanf("%s",&num2);
    int len1=strlen(num1),len2=strlen(num2);
    for(int i=len1-1;i>=0;i--)
        com1[len1-i-1]=num1[i]-48;
    for(int i=len2-1;i>=0;i--)
        com2[len2-i-1]=num2[i]-48;
    for(int i=0;i<=len1-1;i++)
    {
        for(int j=0;j<=len2-1;j++)
        {
            re[i+j]=com1[i]*com2[j]; 
        }
        for(int i=0;i<=1000;i++)
        {
            int p=re[i]%10;
            if(re[i]>=10)
                re[i+1]+=re[i]/10; 
            re[i]=p;
        }
        for(int j=0;j<=1000;j++)
            ans[j]+=re[j]; 
        memset(re,0,sizeof(re)); 
    }
    for(int i=0;i<=1000;i++)
    {
        int p=ans[i]%10;
        if(ans[i]>=10)
            ans[i+1]+=ans[i]/10;
        ans[i]=p;
    }
    int t=0;
    for(int i=1005;i>=0;i--)
    {
        if(ans[i]!=0)
        {
            t=i;
            break; 
        }
    }
    for(int i=t;i>=0;i--)
        printf("%d",ans[i]);
    return 0;
} 

by 大壶 @ 2018-11-12 19:20:35

print(int(input())*int(input()))

by 大壶 @ 2018-11-12 19:21:12

超简洁代码


|