题目描述  链接戳这里

解法:

《编程之美》书里有讲

N!能产生0的质数组合只能是2 * 5,也就是说当对N!进行质数分解之后

N!末尾 0 的个数取决于从 1 到 n 的各个数的因子中 2 和 5 的个数的较小的那个,但又因为能被2整除的数出现的频率比能被5整除的数高得多,且出现一个5的时,最少会同时出现一个2,所以最小值就是5出现的个数。即求出5出现的个数就可以得到N!末尾0的个数。

求5出现的个数

n的阶乘 就是 1x2x3x4x5x6........xn

各个因子中5的个数 就是  n累除以5  得到的数字累加  直到 得到0

比如  25 = 1x2x3x4x5x6......x25  这里面每个数进行质因数分解 会得到6个五,其中5,10,15,20各自有一个  25有两个

25/5 =5   5/5=1  1/5=0    5+1+0=6;

为什么 这样解呢   因为  分解质因数后  5,10,15,20各自贡献一个  25贡献两个  125 贡献三个  以此类推

所以  这里面出现的5的次数 就是  =【n/5】+【n/25】+【n/125】......

所以就是n累除5 计数就好了

代码

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>
const int maxn=1e5+7;
typedef long long ll;
ll n;
int main(){scanf("%lld",&n);ll sum=0;while(n){sum+=n/5;n/=5;}printf("%lld",sum);return 0;
}

51nod1003阶乘后边0的数量相关推荐

  1. 51Nod-1003 阶乘后面0的数量【分析思维】

    1003 阶乘后面0的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 n的阶乘后面有多少个0? 6的阶乘 = 1*2*3*4*5*6 = 720,720后面有1 ...

  2. 51Nod 1003 阶乘后面0的数量(数学,思维题)

    1003 阶乘后面0的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 5         难度:1级算法题 n的阶乘后面有多少个0? 6的阶乘 = 1*2*3*4*5*6 = 720 ...

  3. 1003 阶乘后面0的数量

    1003 阶乘后面0的数量 基准时间限制:1 秒 空间限制:131072 KB n的阶乘后面有多少个0? 6的阶乘 = 1*2*3*4*5*6 = 720,720后面有1个0. Input 一个数N( ...

  4. 51 Nod 阶乘后面0的数量

    1003 阶乘后面0的数量  基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 n的阶乘后面有多少个0? 6的阶乘 = 1*2*3*4*5*6 = 72 ...

  5. 51Nod 1003 阶乘后面0的数量 | 思维

    题意:n的阶乘后面0的个数,如果直接算出阶乘再数0的数量一定会超时的. 因为10=2*5,所以求出5贡献的次数就行. #include "bits/stdc++.h" using ...

  6. 【C】阶乘后面0的数量

    n的阶乘后面有多少个0? 6的阶乘 = 1*2*3*4*5*6 = 720,720后面有1个0. Input 一个数N(1 <= N <= 10^9) Output 输出0的数量 Samp ...

  7. 【经典智力题】1024! 末尾有多少个0?——“计算阶乘末尾0的数量”问题引出

    网上有这样一个广为流传的有趣问题: 1024! 末尾有多少个0? 相应的解法是: 末尾0的个数取决于乘法中因子2和5的个数.显然乘法中因子2的个数大于5的个数,所以我们只需统计因子5的个数. 是5的倍 ...

  8. 求一个数的阶乘中0的个数

    求一个数的阶乘中0的个数 连续几天产出为负,再不写点东西没法交代了... public class The_number_of_0_in_FactorialN {public static void ...

  9. NYOJ 84 阶乘的0

    阶乘的0 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 计算n!的十进制表示最后有多少个0 输入 第一行输入一个整数N表示测试数据的组数(1<=N<=100 ...

  10. NYOJ 84 阶乘的0 数论

    阶乘的0 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 计算n!的十进制表示最后有多少个0 输入 第一行输入一个整数N表示测试数据的组数(1<=N<=100 ...

最新文章

  1. AI之Robot:带你玩转机器人DIY机器人——让你成为机器人的真正主人
  2. 优朋普乐大数据_优朋普乐黑维炜:互动电视市场已进入成熟发展期
  3. 图像基本群运算--滤波
  4. 记一次Sentry部署过程
  5. ssl提高组国庆模拟赛【2018.10.5】
  6. LeetCode 383. Ransom Note
  7. .NET控件Designer架构设“.NET研究”计
  8. 2019.7.26随堂笔记
  9. Atitit 企业常见100个职能 组织职能 社会职能 政府职能 家庭职能 团队职能
  10. C++20 标准正式发布,命名为 ISO/IEC 14882:2020。
  11. 关于计算机ps读后感,ps心得体会4篇
  12. matlab coder 4.0,利用MATLAB Coder将MATLAB代码生成C/C++代码
  13. 当刷机工具遇到SetupConnection时的解决方法
  14. 16部趣味数学纪录片
  15. ubuntu分区时主分区和逻辑分区怎么分
  16. 牛逼的黑客也得找工作,他们靠的是黑掉公司网站?
  17. 2006年主流建站系统及其典型网站演示(CMS篇)
  18. SVM-支持向量机算法(一)
  19. windows使用ssh连接远程服务器
  20. Python Print打印计时器功能

热门文章

  1. jdbc 通过反射和元数据编写通用的查询对象方法
  2. Python实战(3)指定的文本列求和求平均
  3. Android应用程序消息处理机制(Looper、Handler)分析(3)
  4. [转]VSS(Visual SourceSafe)使用入门
  5. 从C# 3.0说以人为本(二)—— LINQ语法结构
  6. (十一)ntp时间同步
  7. mysql中文乱码--存入mysql里的中文变成问号的解决办法
  8. 使用sever2008做DHCP中继代理
  9. const和define在值定义上的区别
  10. rsync常见问题及解决办法