1307:【例1.3】高精度乘法
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 39398 通过数: 14455
【题目描述】
输入两个高精度正整数M和N(M和N均小于100位)。求这两个高精度数的积。
【输入】
输入两个高精度正整数M和N。
【输出】
求这两个高精度数的积。
【输入样例】
36
3
【输出样例】
108
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int main()
{
int la,lb,lc;
char s1[10010],s2[10010];
int a[10010],b[10010],c[10010];
cin>>s1>>s2;
la=strlen(s1),lb=strlen(s2),lc=la+lb;
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';//转化
for(int i=1;i<=la;i++)
for(int j=1;j<=lb;j++)
{
c[i+j-1]+=a[i]*b[j];//累加
c[i+j]+=c[i+j-1]/10;//进位
c[i+j-1]%=10;//取余
}
if(c[lc]==0&&lc>0)lc--;
for(int i=lc;i>0;i--)cout<<c[i];
return 0;
}