1172:求10000以内n的阶乘

Posted jzxnl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1172:求10000以内n的阶乘相关的知识,希望对你有一定的参考价值。

传送门:http://ybt.ssoier.cn:8088/problem_show.php?pid=1172

 

 

【题目描述】

求10000以内n的阶乘。

【输入】

只有一行输入,整数n(0≤n≤10000)。

【输出】

一行,即n!的值。

【输入样例】

4

【输出样例】

24



直接乘去就OK了


#include<iostream>
#include<cstring>
#define N 100010
using namespace std;
int n,a[N],lena=1;
int main()
    cin>>n;
    if(n==0)
        cout<<0<<endl;
        return 0;
    
    a[0]=1;
    for(int k=2;k<=n;k++)
        for(int i=0;i<lena;i++)a[i]*=k;
        for(int i=0;i<lena;i++)
            if(a[i]>9)
                a[i+1]+=a[i]/10;
                a[i]%=10;
                if(i==lena-1)lena++;
            
        
    
    for(int i=lena-1;i>=0;i--)cout<<a[i];
    cout<<endl;

 

以上是关于1172:求10000以内n的阶乘的主要内容,如果未能解决你的问题,请参考以下文章

求10000以内n的阶乘(openjudge 2923)

求10000以内n的阶乘

AC日记——求10000以内n的阶乘 openjudge 1.6 14

10000的阶乘有多大

编程求10000以内所有的完全数 matlab

求n的阶乘