#include <stdio.h>
#include <string.h>
char a[2000],b[2000];
int c[5000];
int main(){
int len;
scanf("%s %s",a,b);
int lena=strlen(a);
int lenb=strlen(b);
char t;
for(int i=0;i<lena;i++){
if(2*(i+1)>lena)
break;
t=a[i];
a[i]=a[lena-1-i];
a[lena-1-i]=t;
}
for(int i=0;i<lenb;i++){
if(2*(i+1)>lenb)
break;
t=b[i];
b[i]=b[lenb-1-i];
b[lenb-1-i]=t;
}
for(int i=0;i<lena;i++)
a[i]=a[i]-'0';
for(int i=0;i<lenb;i++)
b[i]=b[i]-'0';
if(a[0]==0||b[0]==0){
printf("0");return 0;
}
int flag=0;
int cnt;
for(int i=0;i<lena;i++){
flag=0;
for(int j=0;j<lenb;j++){
if(j==lenb-1){
c[j+i]+=(a[i]*b[j]+flag)%10;
c[j+i+1]=(a[i]*b[j]+flag)/10;
break;
}
cnt=c[i+j];
c[j+i]+=(a[i]*b[j]+flag)%10;
flag=(a[i]*b[j]+flag)/10;
}
}
flag=0;
len=5000;
for(int i=0;i<len;i++){
if(flag==0){
flag=c[i]/10;c[i]=c[i]%10;
}else {
cnt=c[i];
c[i]=(c[i]+flag)%10;
flag=(cnt+flag)/10;
}
}
flag=0;
for(int i=0;i<len;i++){
if(c[len-1-i]==0&&flag==0)continue;
flag=1;
printf("%d",c[len-1-i]);
}
return 0;
}
【无标题】屎山
最新推荐文章于 2024-08-15 19:05:03 发布