1228:大数阶乘

来源:互联网 发布:淘宝买账号的靠谱吗 编辑:程序博客网 时间:2024/06/03 20:51

1228:大数阶乘


Description


我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?


Input


输入一个整数m(0<=m<=5000)。


Output


输出m的阶乘,并在输出结束后输入一个换行符。


Sample Input


50


Sample Output


30414093201713378043612608166064768844377641568960512000000000000


HINT


C用数组


java用Biginteger


Source


#include<iostream>#include<stdio.h>#include<string.h>using namespace std;int main(){    int a[17000];    int m,i,j;    while(scanf("%d",&m)!=EOF)     {        memset(a,0,sizeof(a));        a[0]=1;        for(i=2;i<=m;i++)        {            int temp=0;            for(j=0;j<17000;j++)            {                int s=a[j]*i+temp;                a[j]=s%10;                temp=s/10;            }        }       for(j=16999;j>=0;j--)       {           if(a[j])            break;       }       for(i=j;i>=0;i--)        cout<<a[i];        cout<<endl;     }     return 0;}


原创粉丝点击