HDU1042 N!(大整数类应用)

来源:互联网 发布:生物技术专业 知乎 编辑:程序博客网 时间:2024/06/08 19:43
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
 
Code:
#include <iostream>#include <algorithm>#include <stdio.h>#include <cstdlib>#include <cstring>#include <cmath>#include <ctime>#include <ctype.h>using namespace std;int a[50000];int main(){    int n;    while(scanf("%d",&n)!=EOF)    {        int i,j,carry,len=1,t;        memset(a,0,sizeof(a));        a[0]=1;        for(i=2;i<=n;i++)        {            for(carry=0,j=0;j<len;j++)            {                t=a[j]*i+carry;                a[j]=t%10;                carry=t/10;            }            while(carry)            {                a[j++]=carry%10;                carry/=10;                len++;            }        }        for(j=len-1;j>=0;j--)            printf("%d",a[j]);        printf("\n");    }    return 0;}

 

原创粉丝点击