高精度乘法
#算法
C++代码:
#include<bits/stdc++.h>
using namespace std;
const int N = 100005;
const int M = 10005;
int a[N] = { 0 }, b[M] = { 0 };
int c[N + M] = { 0 };
int main() {
string s1, s2;
cin >> s1 >> s2;
int len1 = s1.size(), len2 = s2.size();
reverse(s1.begin(), s1.end());
reverse(s2.begin(), s2.end());
for (int i = 0;i < len1;i++)a[i] = s1[i] - '0';//反向存储
for (int i = 0;i < len2;i++)b[i] = s2[i] - '0';
for (int i = 0;i < len1;i++)
for (int j = 0;j < len2;j++)
c[i + j] += a[i] * b[j];
for (int i = 0;i < len1 + len2;i++) {
c[i + 1] += c[i] / 10;//进位
c[i] %= 10;
}
int k = N + M - 1;
while (c[k] == 0)k--;
for (int i = k;i >= 0;i--)cout << c[i];//反向输出
return 0;
}