1307:【例1.3】高精度乘法
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 24445 通过数: 8560
【题目描述】
输入两个高精度正整数M和N(M和N均小于100位)。求这两个高精度数的积。
【输入】
输入两个高精度正整数M和N。
【输出】
求这两个高精度数的积。
【输入样例】
36
3
【输出样例】
108
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1e5+5;
string s1,s2;
string mul()
{
int n1=s1.size(),n2=s2.size();
string res(n1+n2,'0');
for(int i=n1-1;i>=0;i--)
{
for(int j=n2-1;j>=0;j--)
{
int t=res[i+j+1]-'0'+(s1[i]-'0')*(s2[j]-'0');//加本位
res[i+j]+=t/10;
res[i+j+1]=t%10+'0';
}
}
for(int i=0;i<n1+n2;i++)
if(res[i]!='0')
return res.substr(i);
return "0";
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> s1 >> s2;
cout << mul() << endl;
return 0;
}