为什么第五个数据点过不了捏?

P1303 A*B Problem

KiloCranes @ 2024-01-05 11:06:02

#include<bits/stdc++.h>

using namespace std;

const int N=2005;

char s1[N],s2[N];
int len_s1,len_s2,len_s=1,len_t,a1[N],a2[N],s[N],t[N];

int main(){
    cin>>s1;
    cin>>s2;
    len_s1=strlen(s1);
    len_s2=strlen(s2);
    for(int i=0;i<len_s1;i++)
        a1[i]=s1[len_s1-i-1]-'0';
    for(int i=0;i<len_s2;i++)
        a2[i]=s2[len_s2-i-1]-'0';
    for(int i=0;i<len_s1;i++){
        memset(t,0,sizeof(t));
        len_t=1;
        for(int j=0;j<len_s2;j++){
            t[j+i]+=a1[i]*a2[j];
            if(t[j+i]>=10){
                t[j+i+1]+=t[j+i]/10;
                t[j+i]%=10;
                len_t=max(len_t,j+i+2);
            }
            len_t=max(len_t,j+i+1);
        }
        len_s=max(len_s,len_t);
        for(int j=0;j<len_t;j++){
            s[j]+=t[j];
            if(s[j]>=10){
                s[j+1]+=1;
                s[j]-=10;
                len_s=max(len_s,j+2);
            }
            len_s=max(len_s,j+1);
        }
    }
    while(s[len_s-1]==0&&len_s>1)
        len_s--;
    for(int i=len_s-1;i>=0;i--)
        cout<<s[i];
    return  0;
}

|