大数阶乘模板 hdoj1042

N!

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 53465    Accepted Submission(s): 15109


Problem Description
Given an integer N(0 ≤ N ≤ 10000),your task is to calculate N!
 

Input
One N in one line,process to the end of file.
 

Output
For each N,output N! in one line.
 

Sample Input
1
2
3
 

Sample Output
1
2
6
 

Author
JGShining(极光炫影)
 

Recommend
We have carefully selected several similar problems for you:  1715 1047 1063 1753 1316

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define M (1000000)                    //注意此处的M值,乘法不同于加减法,数组竟可能大
int jc[M];                                          //开辟数组储存

int main() {   int n;   while(~scanf("%d",&n))   {    memset(jc,sizeof(jc));         int i,j,k,len,digit,t;       jc[0]=len=1;                           //将结果初始化为1             for(i=2;i<=n;i++)                  //开始阶乘,从2 开始       {        for(j=1,digit=0;j<=len;j++) //应阶乘中的一项与当前所得临时结果的某位//相乘(加上进位)        {         t=jc[j-1]*i+digit;                 //digit 进位         jc[j-1]=t%10;         digit=t/10;        }        while(digit)                       //判断最高位是否进位        {         jc[++len-1]=digit%10;   //有进位,不仅各项有变化,而且常盾也要变         digit/=10;        }       }           for(k=len;k>0;--k)        printf("%d",jc[k-1]);    //此处应注意        printf("\n");       }    return 0; }

相关文章

自1998年我国取消了福利分房的政策后,房地产市场迅速开展蓬...
文章目录获取数据查看数据结构获取数据下载数据可以直接通过...
网上商城系统MySql数据库设计
26个来源的气象数据获取代码
在进入21世纪以来,中国电信业告别了20世纪最后阶段的高速发...