高精度阶乘n
作者:
在下木子
,
2024-05-09 19:04:09
,
所有人可见
,
阅读 10
高精度乘法 n阶乘
#include<iostream>
#include <vector>
using namespace std;
vector<int> mul(vector<int> &a,int n)
{
vector<int> t;
int k = 0; //来存储中间值,用于累加每次乘法操作的结果,同时也存储进位的值
for(int i = 0; i < a.size()||k; i++)
{
if(i < a.size()) k += a[i]*n;
t.push_back(k%10);
k /= 10;
}
while(t.back() == 0 && t.size() > 1) t.pop_back();
return t;
}
int main()
{
vector<int> res;
res.push_back(1);
int n;
cin>>n;
for(int i = 1; i <= n; i++)
{
res = mul(res,i);
}
for(int j = res.size() - 1; j >= 0; j--)
{
cout<<res[j];
}
}