0
点赞
收藏
分享

微信扫一扫

14:求10000以内n的阶乘(http://noi.openjudge.cn/ch0106/14/)

王老师说 2022-02-19 阅读 56

NOI

 / 

1.6编程基础之一维数组

14:求10000以内n的阶乘

  • 查看
  • 提交
  • 统计
  • 提问

总时间限制: 

5000ms

内存限制: 

655360kB

描述

求10000以内n的阶乘。

输入

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

输出

一行,即n!的值。

样例输入

100

样例输出

93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

JP06

  • 查看
  • 提交
  • 统计
  • 提问
    #include<iostream>
    using namespace std;
    int main()
    {
        int n,a,fac[50000],ans[50000]={1,1};
        cin >> n;
        for(int i=1; i<=n; i++){
            for (int j=1;j<=ans[0];j++){
                ans[j] = ans[j]*i+fac[j];
                fac[j] = 0;
                if (ans[j] >= 10){
                    fac[j+1] += ans[j]/10;
                    ans[j] %= 10;
                    if (j==ans[0]) ++ans[0];
                }
            }
        }
        for (int i=ans[0]; i>0; i--) cout << ans[i];
        cout << endl;
        return 0;
    }

举报

相关推荐

0 条评论