Code:
#include<bits/stdc++.h>
#define maxn 10003
#define ll long long
#define p 10000000000ll
using namespace std;
ll base[maxn];
int n,m,len=1;
void multiply(int x)
{
ll pre=0,tmp;
for(int i=1;i<=len;i++)
{
tmp=base[i]*x;
base[i]=tmp%p+pre;
pre=tmp/p;
}
if(pre)++len, base[len]=pre;
}
int main(){
scanf("%d%d",&n,&m);
base[1]=1;
for(int i=1;i<=n;i++)multiply(i);
for(int i=n-m+4;i<=n+2;i++)multiply(i);
multiply(n+1);
multiply(n*(n+3)+2*m);
printf("%lld",base[len]);
while(--len)printf("%010lld",base[len]);
return 0;
}
本文介绍了一种使用C++实现大数乘法的方法,通过定义长整型数组存储大数,并使用逐位相乘及进位处理的策略完成乘法运算。适用于处理超出标准数据类型范围的大数计算问题。
716

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



