一直WA,求大佬帮助

P1303 A*B Problem

UT_MC_wuming @ 2022-05-15 12:44:37

ps:因为c数组前面有几个零,所以我放到最后输出 但为什么一直是WA啊,测试了好一会感觉没什么毛病

#include <bits/stdc++.h>
using namespace std;
const int maxn=2e4+7;
int a[maxn],b[maxn],c[maxn];
char s1[maxn],s2[maxn];
int main(){
    cin>>s1;
    cin>>s2;
    int l1=strlen(s1),l2=strlen(s2);
    for(int i=0;i<l1;i++)a[i]=s1[l1-i-1]-'0';
    for(int i=0;i<l2;i++)b[i]=s2[l2-i-1]-'0';
    int l=l1+l2;
    int jw=0;
    for(int i=0;i<l1;i++){
        for(int j=0;j<l2;j++){
            c[i]=a[i]*b[j];
        }
    }
    for(int i=0;i<l1+l2;i++){
        c[i]+=jw;
        if(c[i]>=10){
            jw=c[i]/10;
            c[i]%=10;
        }
        else jw=0;
    }
    if(jw)cout<<jw;
    bool f=0;
    int num=0;
    for(int i=l-1;i>=0;i--){
        if(c[i]==0&&!f){
            num++; 
            continue;
        }
        else if(c[i]!=0)f=1;
        cout<<c[i]; 
    }
    while(num--)cout<<0;
    return 0;   
}

by liuqichen121 @ 2022-07-15 16:55:04

问题再“num” 用“num++”可能造成输出多个0,换成“num=1”即可过有“0”的点


|