UT_MC_wuming @ 2022-05-15 12:44:37
ps:因为c数组前面有几个零,所以我放到最后输出 但为什么一直是WA啊,测试了好一会感觉没什么毛病
#include <bits/stdc++.h>
using namespace std;
const int maxn=2e4+7;
int a[maxn],b[maxn],c[maxn];
char s1[maxn],s2[maxn];
int main(){
cin>>s1;
cin>>s2;
int l1=strlen(s1),l2=strlen(s2);
for(int i=0;i<l1;i++)a[i]=s1[l1-i-1]-'0';
for(int i=0;i<l2;i++)b[i]=s2[l2-i-1]-'0';
int l=l1+l2;
int jw=0;
for(int i=0;i<l1;i++){
for(int j=0;j<l2;j++){
c[i]=a[i]*b[j];
}
}
for(int i=0;i<l1+l2;i++){
c[i]+=jw;
if(c[i]>=10){
jw=c[i]/10;
c[i]%=10;
}
else jw=0;
}
if(jw)cout<<jw;
bool f=0;
int num=0;
for(int i=l-1;i>=0;i--){
if(c[i]==0&&!f){
num++;
continue;
}
else if(c[i]!=0)f=1;
cout<<c[i];
}
while(num--)cout<<0;
return 0;
}
by liuqichen121 @ 2022-07-15 16:55:04
问题再“num” 用“num++”可能造成输出多个0,换成“num=1”即可过有“0”的点