第一个测试点WA求调

P1303 A*B Problem

Backspaces @ 2024-10-05 20:02:27

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
    string a,b;
    cin>>a>>b;
    reverse(a.begin(),a.end());
    reverse(b.begin(),b.end());

    int max=a.size()+b.size(),min=b.size();

    int c[min][max];
    for(int i=0;i<min;i++){
        for(int j=0;j<max;j++){
            c[i][j]=0;
        }
    }

    int o=0;
    for(int p=0;p<min;p++){
    for(int i=0;i<a.size();i++){
    int n=(a[i]-'0')*(b[p]-'0')+c[p][i+o];
        c[p][o+i]=n%10;
        int j=o+i;
    while(n>=10){
        n=n/10+c[p][j+1];
        c[p][j+1]=n%10;
        n/=10;
        j++;
    }
    }
    o++;
    }

    int sum[max];
    for(int &i:sum){
        i=0;
    }
    for(int j=0;j<max;j++){
        for(int i=0;i<min;i++){
            sum[j]+=c[i][j];
        }
        if(j<max-1){
            sum[j+1]=sum[j+1]+sum[j]/10;
        }
        sum[j]=sum[j]%10;
    }
    reverse(sum,sum+max);
    int w=0;
    while(sum[w]==0){
        w++;
    }
    if(w==max)cout<<0;
    while(w<max){
        cout<<sum[w];
        w++;
    }
}

|