hdu 1042 大数阶乘 ,

来源:互联网 发布:java树形结构简单 编辑:程序博客网 时间:2024/05/22 01:49

hdu 1042 大数阶乘,  原题链接, click here.

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

对此,我只想说,0的阶乘是1之前我怎么不知道… … 特判的我傻傻地交了一发又一发…去了特判之后,就A了,都是泪…

#include<bits/stdc++.h>using namespace std;const int maxn = 36000;//10000  的阶乘有  35661位;int f[maxn];int main(){    int a;    while(~scanf("%d",&a))    {        f[0]=1;        int c,len=1,j;        //len直接记录位数,不用再从后往前遍历了;        for(int i=1;i<=a;i++)        {            c=0;            for( j=0;j<len;j++)            {                f[j]=f[j]*i+c;                c=f[j]/10;                f[j]%=10;            }            while(c)//加上多余的没加上的c;            {                f[len++]=c%10;                c/=10;            }        }        //长度为 len,从len-1开始输出;        for(int i=len-1;i>=0;i--)            printf("%d",f[i]);        printf("\n");    }    return 0;}
0 0
原创粉丝点击