#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main( void )
{
int n, i, j, len, g, t, zero;
static unsigned int a[10000];
memset(a, 0, 40000);
a[0]=1;len=1; zero=0;
scanf("%d", &n);
for(i=2; i<=n; i++){
for(j=zero,g=0; j<len; j++){
t=a[j]*i+g;
g=t/10000;
t=t%10000;
a[j]=t;
if((!t)&&(j-zero==1)) ++zero;
}
while(g){
a[len++]=g%10000;
g/=10000;
}
}
while(!a[len]) len--;
printf("%d", a[len--]);
while(len>=0) printf("%04d", a[len--]);
return 0;
}
聽說是大數階乘,沒測過!!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.