/*
Name: 计算大数阶乘
Copyright: none
Author: jinfan
Date: 17/08/13 17:42
Description: 由于比较大的数的阶乘用普通变量装不下(__int64某些数可以存下),可以
用数组来模拟手工计算,将数组最低位a[0]放各位,即倒序存储
*/
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
using namespace std;
int main()
{
int a[3000],i,j,k,d,c,n;
while(cin>>n){
memset(a,0,sizeof(a));
k=a[0]=1;
d=0;
for(i=1;i<=n;i++){
for(j=0;j<k;j++){
c=i*a[j]+d;
a[j]=c%10;
d=c/10;
}
while(d){
k++;
a[j]=d%10;
j++;
d/=10;
}
}
for(i=k-1;i>=0;i--){
cout<<a[i];
}
cout<<endl;
}
return 0;
}
计算阶乘
最新推荐文章于 2022-09-01 01:13:28 发布