#include <bits/stdc++.h>
using namespace std;
int ans[100000] = {1};//1! = 1;
int main()
{
int a;
cin>>a;
int wei =1;//位数
for(int i=2;i<=a;i++) //由于数位较多,使用数组计算,
{
int k=0;//进位 多考虑进位如何计算即可
for(int j=0;j<wei;j++)
{
int aa = i*ans[j];
ans[j] = k%10+ aa%10;
k /= 10;
if(ans[j]>=10)
{
k += ans[j]/10;
ans[j]-=10;
}
k += aa/10;//cout<<ans[j]<<endl;
}
while(k!=0)
{
ans[wei++] = k%10;
k/=10;
}
}
for(int i=wei-1;i>=0;i--) cout<<ans[i];
return 0;
}
求阶乘!!
最新推荐文章于 2024-05-23 20:41:04 发布