Engulf @ 2021-07-04 14:33:23
测试点1 in 0 10
测试点1 out 0
怎么WA了????
附上代码
#include<bits/stdc++.h>
using namespace std;
const int MAXN=2005;
int A[MAXN],B[MAXN],Ans[MAXN*MAXN],Len_A,Len_B,Len_Ans;
void Read(int *a,int &Len){
string cur;
cin>>cur;
Len=cur.length();
for(int i=0;i<Len;i++)a[i]=cur[i]-48;
reverse(a,a+Len);
}
int main(){
Read(A,Len_A);
Read(B,Len_B);
Len_Ans=Len_A+Len_B-1;
for(int i=0;i<Len_A;i++)
for(int j=0;j<Len_B;j++)
Ans[i+j]+=A[i]*B[j];
for(int i=0;i<Len_Ans;i++)
if(Ans[i]>9)Ans[i+1]+=Ans[i]/10,Ans[i]%=10;
while(Ans[Len_Ans])Len_Ans++;
for(int i=Len_Ans-1;i>=0;i--)cout<<Ans[i];
return 0;
}
by Maxmilite @ 2021-07-04 15:09:48
考虑给个特判。
#include<bits/stdc++.h>
using namespace std;
const int MAXN=2005;
int A[MAXN],B[MAXN],Ans[MAXN*MAXN],Len_A,Len_B,Len_Ans;
void Read(int *a,int &Len){
string cur;
cin>>cur;
Len=cur.length();
for(int i=0;i<Len;i++)a[i]=cur[i]-48;
reverse(a,a+Len);
}
int main(){
Read(A,Len_A);
Read(B,Len_B);
Len_Ans=Len_A+Len_B-1;
for(int i=0;i<Len_A;i++)
for(int j=0;j<Len_B;j++)
Ans[i+j]+=A[i]*B[j];
for(int i=0;i<Len_Ans;i++)
if(Ans[i]>9)Ans[i+1]+=Ans[i]/10,Ans[i]%=10;
while(Ans[Len_Ans])Len_Ans++;
if (Ans[Len_Ans - 1] == 0)
cout << 0 << endl;
else
for(int i=Len_Ans-1;i>=0;i--)cout<<Ans[i];
return 0;
}
by Maxmilite @ 2021-07-04 15:10:06
@TMJYH09
by 于洪铎 @ 2021-07-04 15:17:36
提示:(用python)
跑题ing。****
第一次第一!!!!!!!!
by Engulf @ 2021-07-04 16:36:17
@Maxmilite
多谢大佬!orzorzorz