首页 > 其他分享 >信息学奥赛一本通 1172:求10000以内n的阶乘

信息学奥赛一本通 1172:求10000以内n的阶乘

时间:2022-09-03 11:33:09浏览次数:78  
标签:信息学 lena 10000 1172 int 奥赛 阶乘

时间限制: 1000 ms         内存限制: 65536 KB

提交数: 34265     通过数: 10018

【题目描述】

求<span id="MathJax-Span-2" class="mrow"><span id="MathJax-Span-3" class="mn">1000010000以内<span id="MathJax-Span-5" class="mrow"><span id="MathJax-Span-6" class="mi">nn的阶乘。

【输入】

只有一行输入,整数<span id="MathJax-Span-8" class="mrow"><span id="MathJax-Span-9" class="mi">nn(<span id="MathJax-Span-11" class="mrow"><span id="MathJax-Span-12" class="mn">0<span id="MathJax-Span-13" class="mo">≤<span id="MathJax-Span-14" class="mi">n<span id="MathJax-Span-15" class="mo">≤<span id="MathJax-Span-16" class="mn">100000≤n≤10000)。

【输出】

一行,即<span id="MathJax-Span-18" class="mrow"><span id="MathJax-Span-19" class="mi">n<span id="MathJax-Span-20" class="mo">!n!的值。

【输入样例】

4

【输出样例】

24

更多信息学奥赛学习资料

链接:https://pan.baidu.com/s/1IBH3uj7OdE6gx16RYxZCtw?pwd=ip6d
提取码:ip6d

#include<iostream>
#include<cstring>
#define N 100010
using namespace std;
int n,a[N],lena=1;
int main(){
    cin>>n;
    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;
}

  

标签:信息学,lena,10000,1172,int,奥赛,阶乘
From: https://www.cnblogs.com/sd129/p/16652236.html

相关文章

  • 793. 阶乘函数后 K 个零
     labuladong题解思路难度困难187收藏分享切换为英文接收动态反馈 f(x) 是 x! 末尾是0的数量。回想一下 x!=1*2*3*...*x,且 0!=1 。例如, ......
  • leetcode-793. 阶乘函数后 K 个零
    793.阶乘函数后K个零图床:blogimg/刷题记录/leetcode/793/刷题代码汇总:https://www.cnblogs.com/geaming/p/16428234.html题目思路首先我们令\(zeta(x)\)为\(x!\)......
  • leetcode-172. 阶乘后的零
    172.阶乘后的零图床:blogimg/刷题记录/leetcode/172/刷题代码汇总:https://www.cnblogs.com/geaming/p/16428234.html题目思路n!中有几个0与[1,n]中出现多少个5的因数......
  • LeetCode/阶乘后的零
    1.返回尾零数量可以转换为求质因子为2和5数量的较小值,实际上就是求质因子为5的数量classSolution{public:inttrailingZeroes(intn){intans=0;......
  • c语言中利用函数递归求阶乘
     001、#include<stdio.h>inttest(intn)//定义函数{if(n>0){returnn*test(n-1);//调用函数自......
  • #10000. 「一本通 1.1 例 1」活动安排
    贪心:选择结束时间尽量早的活动使后面的活动尽量多,所以我们以结束时间排序如何一个一个判断即可。#include<bits/stdc++.h>usingnamespacestd;structnode{ intl,r;......
  • 习题2-6 求阶乘序列前N项和
    #include<stdio.h>doublefact(intn);intmain(){inti,n;doubleresult;scanf("%d",&n);for(i=1;i<=n;i++){result=fact(i)......