求助,c++代码20pts

P1303 A*B Problem

gylgygdhg @ 2022-11-20 16:16:32

#include <bits/stdc++.h>
using namespace std;
long long a[2001],b[2001],x,s,ans[4000001],y,m=4000000,so;
char n;
bool f=true;
int main (){
    while(true){
        n=getchar();
        if(n<'0' || n>'9'){
            break;
        }
        else{
            a[x]=n-48;
            x++;
        }
        if(n=='0' && f){
            f=true;
        }
        else{
            f=false;
        }
    }
    if(f){
        cout<<0;
        return 0;
    }
    f=true;
    while(true){
        n=getchar();
        if(n<'0' || n>'9'){
            break;
        }
        else{
            b[y]=n-48;
            y++;
        }
        if(n=='0' && f){
            f=true;
        }
        else{
            f=false;
        }
    }
    if(f){
        cout<<0;
        return 0;
    }
    for(int i=0;i<x;i++){
        for(int j=0;j<y;j++){
            s=b[y-j-1]*a[x-i-1];
            ans[m-i-j]+=s%10;
            ans[m-i-j-1]+=ans[m-i-j]/10;
            ans[m-i-j]=ans[m-i-j]%10;
            ans[m-i-j-1]+=s/10;
        }
    }
    while(ans[so]==0){
        so++;
    }
    for(int i=so;i<=m;i++){
        cout<<ans[i];
    }
    return 0;
}

|