C++ 高精度乘法 输入格式: 第一行输入一个整数a 第一行输入一个整数b 输出格式: 一个表示a*b的整数 #include<iostream> #include<string.h> using namespace std; int main(){ char a[300]; char b[300]; cin>>a>>b; int la=strlen(a); int lb=strlen(b); int sa[300]={0}; int sb[300]={0}; for(int i=0;i<la;i++) sa[i]=a[la-1-i]-'0'; for(int i=0;i<lb;i++) sb[i]=b[lb-1-i]-'0'; int s[400]={0}; for(int i=0;i<la;i++){ for(int j=0;j<lb;j++){ s[i+j]=s[i+j]+sa[i]*sb[j]; } } int l=la+lb-2; for(int i=0;i<=l;i++){ if(s[i]>9&&i<l){ s[i+1]=s[i+1]+s[i]/10; s[i]=s[i]%10; } if(i==l){ if(s[i]>9){ s[i+1]=s[i+1]+s[i]/10; s[i]=s[i]%10; l++; } } } for(int i=l;i>=0;i--) cout<<s[i]; return 0; } 原题链接:http://lx.lanqiao.cn/problem.page?gpid=T722