代码改变世界

求N的阶乘 N!

2012-03-27 12:48  璋廊  阅读(257)  评论(0编辑  收藏  举报
#include<stdio.h>
#define max 100000;
int main()
{
    int n,i,j;
    while(scanf("%d",&n)!=EOF)
    {
        int a[10008]={0};
        a[0]=1;
        int k=0;
        for(i=1;i<=n;i++)
      {
            for(j=0;j<=k;j++)//两个for循环不能放到一起
            a[j]=a[j]*i;
            for(j=0;j<=k;j++)
            {
                
                a[j+1]+=a[j]/max;
                a[j]=a[j]%max;
            }
            if(a[j])
                k++;
        }
        printf("%d",a[k]);//注意输出的时候
        for(i=k-1;i>=0;i--)
            printf("%05d",a[i]);
        printf("\n");
    }
    return 0;
}