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 刚发现你已经过了,不好意思,打扰你了,祝你好运