题目链接:here~~
大数处理:大数乘小数
#include <iostream>
#include <cstdio>
#include <string.h>
using namespace std;
int a[10010];
int main()
{
int i, m, t, j, c;
while (cin>>m)
{
memset(a, 0, sizeof(a));
a[0]=1;
t=0;
for (i = 1; i<=m; i++)
{
c=0;
for (j = 0; j<=t; j++)
{
a[j]=a[j]*i+c;
c=a[j]/10000;
a[j]=a[j]%10000;
}
if (c!=0)
{
t++;
a[t]=c;
}
}
cout<<a[t];
for (i = t-1; i>=0; i--)
printf("%04d", a[i]);
cout<<endl;
}
return 0;
}
本文介绍了一种使用C++实现的大数乘法算法,该算法能够处理大数与较小数字之间的乘法运算,通过逐位相乘并进位的方式确保了计算的准确性。
595

被折叠的 条评论
为什么被折叠?



