#include <stdio.h>
#include <string.h>
int a[101], b[101], c[202];
int mul(int l1, int l2, int a1[101], int a2[101], int c[202])
{
int i, j;
int y;//进位
int x;//乘积
int z;//余数
int w;//乘积结果保存位置
memset((void *)&c[0], 0, sizeof(int));
for(i = 0; i < 101; i++){
for(j = 0; j < 101; j++){
x = a1[i] * a2[j];
z = x % 10;
y = x/10;
w = i + j;
c[w] += z;
c[w+1] += y + c[w]/10;
c[w] %= 10;
}
}
w = l1 + l2;
if(c[w-1] == 0){
w--;
}
return w;
}
int main(int argc, char **argv)
{
char str[101];
int i, pos, len1, len2;
if(fgets(str, 101, stdin) != NULL){
len1 = strlen(str);
for(i = 0; i < len1-1; i++){
a[i] = str[i] - 48;
}
}
if(fgets(str, 101, stdin) != NULL){
len2 = strlen(str);
for(i = 0; i < len2-1; i++){
b[i] = str[i] - 48;
}
}
pos = mul(len1-2, len2-2, a, b, c);
for(i = 0; i <= pos; i++){
printf("%d", c[i]);
}
printf("\n");
return 0;
}
|