计算N!(n<=1000)

来源:互联网 发布:apache限制ip访问 编辑:程序博客网 时间:2024/06/04 19:03
时间限制:
5000ms
内存限制:
40000kB
描述

对于给出的N,计算N(0<=n<=1000)的阶乘。

输入
有多组测试数据,每组占一行,为整数N,输入到文件结束。
输出
对于每组测试数据,输出一行结果。
样例输入

1

2

3

样例输出

1

2

6

 

 

 

 

#include <stdio.h>int a[20000];intmain(){   int n, i, j, flag, length, t;   while(scanf("%d",&n)!=EOF)   {        a[0]= 1;       if(n==0)       {            printf("1\n");           continue;        }        length = 1;       for(i=1; i<=n; i++)       {            flag =0;            for(j=0; j<length; j++)           { t = i * a[j];                a[j]= ( t + flag) % 10;                flag = ( t + flag)/ 10;           }            while(flag!=0)           {                a[j]= flag % 10;                j++; length++;                flag= flag / 10;            }       }        for(i=length-1; i>=0; i--)        {           printf("%d", a[i]);       }        printf("\n");   }    return 0;}

 

 

 

原创粉丝点击