c++最后两个点WA???

P1303 A*B Problem

ZhouJiangyue @ 2022-07-27 15:07:53

#include<bits/stdc++.h>
using namespace std;

int main(){
    string a,b;
    cin>>a>>b;
    if(a=="0"||b=="0"){
        cout<<0;
        return 0;
    }
    int len=a.size()+b.size()+1,c[len]={0};
    if(a.size()<b.size())swap(a,b);

    for(int i=1;i<=b.size();i++){
        for(int j=1;j<=a.size();j++){
            c[i+j]+=(b[b.size()-i]-'0')*(a[a.size()-j]-'0');

        }
    }

    for(int i=2;i<len;i++){
        c[i+1]+=c[i]/10;
        c[i]%=10;
    }
    if(c[len]==0)len--;
    for(int i=len;i>=2;i--)cout<<c[i];
    return 0;
}

第四个点答案和我输出的结果一样,为什么是错的???


by ZhouJiangyue @ 2022-07-27 15:44:42

@御坂10029号 @ERICYIN 谢谢


by 御坂10029号 @ 2022-07-27 15:44:57

@ZhouJiangyue 把

int len=a.size()+b.size()+1,c[len]={0};

改成

int len=a.size()+b.size()+1,c[len+1]={0};

就行了


by ZhouJiangyue @ 2022-07-27 15:50:56

@御坂10029号 过了,谢谢


by ERICYIN @ 2022-07-27 15:55:08

@御坂10029号 这位的介绍有点__(请自由发挥)


by ZhouJiangyue @ 2022-07-27 16:11:52

@ERICYIN 简洁明了NB 呵呵


by ERICYIN @ 2022-07-27 17:23:40

@ZhouJiangyue 谢谢


上一页 |