#include <iostream>
#include <cstring>
using namespace std;
int main()
{
char sz1[100], sz2[100];
cin >> sz1 >> sz2;
int len1 = strlen(sz1);
int len2 = strlen(sz2);
int nRes[200];
memset(nRes, 0, sizeof(nRes));
for (size_t i = len1-1; i >= 0; i--)
{
for (size_t j = len2-1; j >= 0; j--)
{
size_t k = 200 - len1 - len2 + i + j + 1;
nRes[k] += (sz1[i] - '0') * (sz2[j] - '0');
while (nRes[k] >= 10)
{
int temp = nRes[k];
nRes[k] = nRes[k] % 10;
nRes[k-1] = (nRes[k-1] + temp / 10);
k--;
//if (k<0) // 这种情况不存在
//{
// break;
//}
}
}
}
bool flag = false;
for (size_t i = 0; i < 200; i++)
{
if (nRes[i] != 0 || flag)
{
cout << nRes[i];
flag = true;
}
}
cout << endl;
return 0;
}
大整数相乘——两个不超过100位的整数相乘
最新推荐文章于 2022-09-05 19:19:03 发布