题目链接:信息学奥赛一本通:高精度乘法
输入:
36
3
输出:
108
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e4+5;
int a[maxn],b[maxn];
int main(){
string sa,sb;
int len1,len2;
int c[20005]={0};
cin>>sa>>sb;
len1=sa.length();
len2=sb.length();
int j;
for(int i=len1-1,j=0;i>=0;i--){
a[j++]=sa[i]-'0';
}
for(int i=len2-1,j=0;i>=0;i--){
b[j++]=sb[i]-'0';
}
//高精度乘法
for(int i=0;i<len1;i++){
for(int j=0;j<len2;j++){
c[i+j]+=a[i]*b[j];
c[i+j+1]+=c[i+j]/10;
c[i+j]%=10;
}
}
int lenc=len1+len2-1;
for(int i=lenc;i>=0;i--){
if(c[i]!=0){
for(int k=i;k>=0;k--){
printf("%d",c[k]);
}
break;
}
}
printf("\n");
return 0;
}