A*B
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
char s1[505],s2[505];
int a[505],b[505],c[505];
//乘法和加法很像,因为乘法就是从加法推过来的,感谢数学家。
int main(){
int la,lb,lc; //输入两个数
scanf("%s",s1);
scanf("%s",s2);
la = strlen(s1);
lb = strlen(s2);
for(int i = 0;i < la;i++) //倒装
a[la - i] = s1[i] - '0';
for(int i = 0;i < lb;i++)
b[lb - i] = s2[i] - '0';
lc = la + lb; //结果最长不会超过两个数长度相加
for(int i = 1;i <= la;i++) //核心算法 类似二维数组
for(int j = 1;j<=lb;j++){
c[i+j-1] = c[i+j-1] + a[i]*b[j];
c[i+j] = c[i+j] + c[i+j-1]/10;
c[i+j-1] = c[i+j-1]%10;
}
while (c[lc] == 0 && lc > 1) lc--;
for(int i = lc;i >= 1;i--) //输出
printf("%d",c[i]);
return 0;
}
2021年8月14日22点04分