40分是为什么?

P1303 A*B Problem

caixukun___123 @ 2024-08-15 10:08:59

有没有大佬帮忙一下,40分是为什么?

#include<bits/stdc++.h>
using namespace std;
vector<int> C;
void mul(vector<int> &A,int b){
    int t=0;
    for(int i=0;i<A.size()||t;i++){
        if(i<A.size()) t+=A[i]*b;
        C.push_back(t%10);
        t/=10;
    }
}
int main(){
    string a;
    int b;
    vector<int> A;
    cin>>a>>b;
    for(int i=a.size()-1;i>=0;i--) A.push_back(a[i]-'0');
    mul(A,b);
    for(int i=C.size()-1;i>=0;i--) printf("%d",C[i]);
    return 0;
}

by jmy2012 @ 2024-08-15 10:17:49

print(int(input())*int(input()))


by lxr_Galaxy @ 2024-08-15 10:19:25

@realheizi 回错人了,不好意思


by lxr_Galaxy @ 2024-08-15 10:19:58

@guojingqi123 参考下我的代码吧,感觉你写的有点问题,c是a和b的和,至少开max(a,b)+1的数组长度


by realheizi @ 2024-08-15 10:20:11

@lxr_Galaxy 我没意见


by realheizi @ 2024-08-15 10:20:49

@lxr_Galaxy 我还在纳闷114514是不是真的不够长


by lxr_Galaxy @ 2024-08-15 10:22:11

@lxr_Galaxy 看成A+B问题,这题是AB,所以长度是len(a)len(b)+1,防止溢出还要多加几位


by lxr_Galaxy @ 2024-08-15 10:23:37

@realheizi 数据范围是1e200,114514开得下,但是太浪费空间了,开2005就好了


by lxr_Galaxy @ 2024-08-15 10:24:50

@guojingqi123 刚发现你已经过了,不好意思,打扰你了,祝你好运


上一页 |