ubsonth @ 2018-03-24 12:42:11
#include<bits/stdc++.h>
using namespace std;
int main(){
char a1[110],b1[110];
int a[110],b[110],c[110];
int lena,lenb,x,y;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
scanf("%s%s",a1,b1);
lena=strlen(a1);
lenb=strlen(b1);
for(int i=0;i<=lena-1;i++){
a[lena-i]=a1[i]-'0';
}
for(int i=0;i<=lenb-1;i++){
b[lenb-i]=b1[i]-'0';
}
for(int j=1;j<=lenb;j++){
x=0;
for(int i=1;i<=lena;i++)
{
x=a[i]*b[j];
y=c[i+j-1]+x;
c[i+j-1]=y%10;
c[i+j]=y/10+c[i+j];
}
}
int lenc=lena+lenb;
while(c[lenc]==0&&lenc>1)
{
lenc--;
}
for(int i=lenc;i>=1;i--){
cout<<c[i];
}
return 0;
}
by stoorz @ 2018-03-24 13:00:39
把数组开大一点试一试
by stoorz @ 2018-03-24 13:01:16
还有可以去掉memset,memset有点耗时
by x义x @ 2018-03-24 13:15:08
首先数组开大
memset不需要,这玩意比较耗时,abc三个数组可以开到全局,这样就不需要清0了。
by Fraction @ 2018-03-24 13:44:16
还可以加static
逃
by Fraction @ 2018-03-24 13:45:54
你的数组好像开小了