用户:|宸宸|查看:2 回复:1 评论:2 创建时间:2024-07-31T15:58:05
1307:【例1.3】高精度乘法
时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】
输入两个高精度正整数M和N(M和N均小于100位)。求这两个高精度数的积。
【输入】输入两个高精度正整数M和N。
【输出】求这两个高精度数的积。
【输入样例】36 3【输出样例】
108
【代码】:
#include<bits/stdc++.h>
using namespace std;
string a,b;
int aa[205];//乘数
int bb[205];//乘数
int cc[405];//积
int main()
{
cin>>a>>b;
for (int i=0;i<a.length();i++){
aa[a.length()-i]=a[i]-'0';
}
for (int i=0;i<b.length();i++){
bb[b.length()-i]=b[i]-'0';
}
for (int i=1;i<=a.length();i++){
for (int j=1;j<=b.length();j++){
cc[i+j-1]+=aa[i]*bb[j];
cc[i+j]+=cc[i+j-1]/10;
cc[i+j-1]%=10;
}
}
int len=a.length()+b.length();
if (cc[len]==0){
len--;
}
for (int i=len;i>=1;i--){
cout<<cc[i];
}
return 0;
}


有兴趣可以用Python试试。