社区讨论

60RE求助

P1303A*B Problem参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@m62y0coo
此快照首次捕获于
2025/01/19 09:32
去年
此快照最后确认于
2025/11/04 11:20
4 个月前
查看原帖
大佬们帮帮忙,没搞懂这段代码为什么会炸
CPP
#include<bits/stdc++.h>
using namespace std;

string amb(string A,string B){
    if(A=="0" or B=="0"){
        return "0";
    }
    int a[B.size()],b[A.size()];
    for(int i=0;i<max(A.size(),B.size());i++){
        if(i<A.size()){
            a[i]=A[A.size()-i-1]-'0';
        }
        if(i<B.size()){
            b[i]=B[B.size()-i-1]-'0';
        }
    }
    string ans="";
    int last=0;
    // int ans[A.size()+B.size()]={0};
    for(int i=0;i<A.size();i++){
        for(int j=0;j<B.size();j++){
            ans[i+j]+=a[i]*b[j];
        }
    }
    for(int i=0;i<A.size()+B.size();i++){
        if(ans[i]>9){
            ans[i+1]+=ans[i]/10;
            ans[i]=ans[i]%10;
        }
    }
    string anser="";
    bool flag=false;
    for(int i=A.size()+B.size()-1;i>=0;i--){
        if(ans[i]!=0){
            flag=true;
        }
        if(flag){
            anser+=ans[i]+'0';
        }
    }

    return anser;
}

int main() {
    string a, b;
    cin >> a >> b;
    cout<<amb(a, b)<<endl;

    return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...