//大数乘法
//积不会超过100位
//为编程方便,并不急于处理进位,而将进位问题留待最后统一处理。
//将字符串中字符转化为数字,并倒序储存 或者 用字符指针输入,正序存储
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int js(int A[],int l1,int B[],int l2) {//数组中是正序存储
int i,j,k,c[101]= {0},num;
for(i=l1-1; i>=0; i--) {
k=l1-i-1;//每进一位 左移一位(在数组中是右移
for(j=l2-1; j>=0; j--) {
num=A[i]*B[j];
c[k]=c[k]+num;
k++;
}
}
for(i=0;i<k;i++){
if(c[i]>9){
c[i+1]=c[i+1]+c[i]/10;
c[i]=c[i]%10;
}
}
k=100;
while(c[k]==0){
k--;
}
for(i=k; i>=0; i--) {
printf("%d",c[i]);
}
return 0;
}
int main() {
char *a,*b;
int lena,lenb,i,ka,kb;//字符串长度
a=(char*)malloc(sizeof(char));
b=(char*)malloc(sizeof(char));
scanf("%s",a);
scanf("%s",b);
lena=strlen(a);
lenb=strlen(b);
int x[lena],y[lenb];//用整型数组存储
ka=0;kb=0;
for(i=0;i<lena;i++){//数组中是正序存储
if((*a)>='0'&&(*a)<='9'){
x[ka]=(int)(*a-'0');
ka++;
}
a++;
}
for(i=0;i<lenb;i++){//数组中是正序存储
if((*b)>='0'&&(*b)<='9'){
y[kb]=(int)(*b-'0');
kb++;
}
b++;
}
js(x,ka,y,kb);//调用函数
return 0;
}