思路
//string倒放到INT数组
//ans[i+j] = num1[i] * num2[j]
*核心
for(int i=0;i<len1;i++){//num1的每一为乘Num2的每一位
for(j=0;j<len2;j++){
ans[i+j]+=num1[i]*num2[j];
}
}
//处理进位
//处理输出结果
#include<stdio.h>
#include<string.h>
//乘到i+j位
char str1[250];
char str2[250];
int num1[250];
int num2[250];
int ans[450];
int main(){
int len1,len2,j;
scanf("%s%s",str1,str2);
len1=strlen(str1);
len2=strlen(str2);
memset(num1,0,sizeof(num1));
memset(num2,0,sizeof(num2));
memset(ans,0,sizeof(ans));
j=0;
for(int i=len1-1;i>=0;i--)
num1[j++]=str1[i]-'0';
j=0;
for(int i=len2-1;i>=0;i--)
num2[j++]=str2[i]-'0';
for(int i=0;i<len1;i++){//num1的每一为乘Num2的每一位
for(j=0;j<len2;j++){
ans[i+j]+=num1[i]*num2[j];
}
}
// 处理进位
for(int i=0;i<450;i++){
if(ans[i]>=10){
ans[i+1]+=(ans[i]/10);
ans[i]%=10;
}
}
//处理输出结果
int start =0;
for(int i=401;i>=0;i--){
if(start==1){
printf("%d",ans[i]);
}
else if(ans[i]!=0){
printf("%d",ans[i]);
start=1;
}
}
if(start==0)
printf("0");
return 0;
}