蜜汁RE

P1303 A*B Problem

灞波儿奔 @ 2020-08-18 10:08:42

80分,最后一点RE,求助 以下是代码:

#include<bits/stdc++.h>
using namespace std;
char al[2010],bl[2010];
int a[2010],b[2010],c[2010],x;
int main(){
    scanf("%s",al);
    scanf("%s",bl);
    a[0]=strlen(al);
    b[0]=strlen(bl);
    for(int i=1;i<=a[0];++i)a[i]=al[a[0]-i]-'0';
    for(int i=1;i<=b[0];++i)b[i]=bl[b[0]-i]-'0';
    for(int i=1;i<=a[0];++i){
        x=0;
        for(int j=1;j<=b[0];++j){
            c[i+j-1]+=a[i]*b[j]+x;
            x=c[i+j-1]/10;
            c[i+j-1]%=10;
        }
        c[i+b[0]]=x;
    }
    c[0]=a[0]+b[0];
    while(!c[c[0]]&&c[0]>1)c[0]--;
    for(int i=c[0];i>=1;i--)printf("%d",c[i]);
    return 0;
}

多谢


by zhanghzqwq @ 2020-08-18 10:12:10

@灞波儿奔 c数组开4000


by 灞波儿奔 @ 2020-08-18 10:14:05

@zhanghanzhang 多谢,已经过了

But,why?


by zhanghzqwq @ 2020-08-18 10:14:42

@灞波儿奔 你想想,100*100不是10000吗


by zhanghzqwq @ 2020-08-18 10:15:37

同理10^{2000}*10^{2000}=10^{4000}


by zhanghzqwq @ 2020-08-18 10:16:21

高精度基础


by 灞波儿奔 @ 2020-08-18 10:17:17

@zhanghanzhang I see.Thank you!


|