高精度乘法(自己练习,欢迎大家纠错,互相学习提升)
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
string str1, str2;
int a[101], b[101], c[201], d[201];
void strToInt(string s, int a[])
{
for (int i = 1; i <= s.size(); i++)
{
a[i] = s[s.size() - i] - '0';
}
}
int main()
{
cin >> str1 >> str2;
int la = str1.size(), lb = str2.size();
int lc = la + lb;
strToInt(str1, a);
strToInt(str2, b);
for (int i = 1; i < lc; i++)
{
for (int n = 1; n <= i; n++)
{
for (int m = 1; m <= i; m++)
{
if (n + m == i+1)
{
d[i] += a[n] * b[m];
}
}
}
}
for (int i = 1; i < lc + 1; i++)
{
c[i] = d[i]+c[i];
c[i + 1] = c[i] / 10;
c[i] %= 10;
}
while (c[lc] == 0&&lc>1)lc--;
for (int i = lc; i >= 1; i--)
{
cout << c[i];
}
return 0;
}