HDOJ 1042 N!

来源:互联网 发布:新网域名转入万网 编辑:程序博客网 时间:2024/06/05 09:01

N!

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)
Total Submission(s): 75189    Accepted Submission(s): 21920

Total Submission(s): 75189    Accepted Submission(s): 21920


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
123
 

Sample Output
126
 

Author
JGShining(极光炫影)
 
#include<cstring>#include<cstdio>int num[50000];int main(){    int n;    while( scanf("%d",&n) != EOF){        memset(num, 0, sizeof(num));        num[0] = 1, num[1] = 1;        for(int i = 2; i <= n; ++i){            int len = num[0];            for(int j = 1;j <= len; ++j) num[j]*=i;            for(int j = 1; j <= num[0]; ++j){                if( num[j] > 9) num[j+1] += num[j]/10, num[j] %= 10;                if( num[ num[0] +1]) num[0] += 1;            }        }        for(int i = num[0];i >= 1; --i) putchar(num[i]+'0');        puts("");    }}


0 0