BNU 0919 日常训练 之 G N! ——高精度 万进制 10000的阶乘

时间:2022-04-01 03:38:11
学习了很神奇的东西。。。

至少对我来说是这样。。。

看到一段神奇的代码。。。

http://blog.csdn.net/liangbch/article/details/3230428

#include <stdio.h>


long long a[10010]= {0},n,i,c,len;
int main()
{
    int N;
    while(scanf("%d",&N)!=EOF){
        a[0]=1LL;
        for(n=N,len=0;n>1;((a[i]=c)>0)?(len++,n--):n--)
            for(c=0,i=0;i<=len;i++){
                a[i]=(c+=a[i]*n)%10000;
                c/=10000;
            }
        for( printf("%d",a[len--]); len>=0; len--)
            printf("%04d",a[len]);
        printf("\n");
    }
}