2018年东北农业大学春季校赛 E-wyh的阶乘

链接:https://www.nowcoder.com/acm/contest/93/E

来源:牛客网

题目描述

这个问题很简单,就是问你n的阶乘末尾有几个0?

输入描述:

输入第一行一个整数T(1<=T<=100),代表测试组数

接下来T行,每行一个数n(1<=n<=10^9)

输出描述:

对于每组测试数据,输出对应答案

示例1

输入

5
1
2
3
4
5

输出

0
0
0
0
1

思路

求n!阶乘末尾有多少个0

这是一个经典问题,从AC代码来看,此题很简单,直接暴力求阶乘是会溢出的,行不通。所以需要转化问题。

问题:如何产生0?

10进制数结尾的每一个0都表示有一个因数10存在——任何进制都一样,对于一个M进制的数,让结尾多一个0就等价于乘以M。

10可以分解为2 × 5——因此只有质数2和5相乘能产生0,别的任何两个质数相乘都不能产生0,而且2,5相乘只产生一个0。

所以,分解后的整个因数式中有多少对(2, 5),结果中就有多少个0,而分解的结果中,2的个数显然是多于5的,因此,有多少个5,就有多少个(2, 5)对。

所以,讨论1000的阶乘结尾有几个0的问题,就被转换成了1到1000所有这些数的质因数分解式有多少个5的问题。

1、 每隔5个,会产生一个0,比如 5, 10 ,15,20.。。

2 、每隔 5×5 个会多产生出一个0,比如 25,50,75,100

3 、每隔 5×5×5 会多出一个0,比如125.

int ans =0;
while(a)
{ans+=a/5;a/=5;
}

此题扩展:求扩展N!的二进制表示中最低位1中的位置。相当于求质因数的2的个数。

原理是:
假如你把1 × 2 ×3× 4 ×……×N中每一个因数分解质因数,结果就像:
1 × 2 × 3 × (2 × 2) × 5 × (2 × 3) × 7 × (2 × 2 ×2) ×……

AC代码

#include <iostream>
#include <string>
#include <vector>
using namespace std;int main()
{int T;cin >> T;for(int i=0;i<T;i++){int a;cin >> a;int ans =0;while(a){ans+=a/5;a/=5;}cout << ans <<endl;}return 0;
}

2018年东北农业大学春季校赛 E-wyh的阶乘相关推荐

  1. 2018年东北农业大学春季校赛 K wyh的数列【数论/斐波那契数列大数取模/循环节】...

    链接:https://www.nowcoder.com/acm/contest/93/K 来源:牛客网 题目描述 wyh学长特别喜欢斐波那契数列,F(0)=0,F(1)=1,F(n)=F(n-1)+F ...

  2. 2018年东北农业大学春季校赛 D wyh的迷宫【搜索】

    链接:https://www.nowcoder.com/acm/contest/93/D 来源:牛客网 题目描述 给你一个n*m的迷宫,这个迷宫中有以下几个标识: s代表起点 t代表终点 x代表障碍物 ...

  3. 2018年东北农业大学春季校赛 F wyh的集合【思维】

    链接:https://www.nowcoder.com/acm/contest/93/F 来源:牛客网 题目描述 你们wyh学长给你n个点,让你分成2个集合,然后让你将这n个点进行两两连接在一起,连接 ...

  4. 2018年东北农业大学春季校赛 A-wyh的曲线

    2018年东北农业大学春季校赛 A-wyh的曲线 链接:https://www.nowcoder.com/acm/contest/93/A 来源:牛客网 题目描述 给你三组数列,分别为 现在给你一个式 ...

  5. 2018年东北农业大学春季校赛 E 阶乘后的0【数论】

    链接:https://www.nowcoder.com/acm/contest/93/E 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  6. 2018年东北农业大学春季校赛 题解

    [题目链接] 写在前面:从都到尾做了一下这场比赛,似乎好题都是原题,水题都是他们学校自己出的.原题在抄过来的过程中,很多题目的题面.数据范围都出了问题,还有题目数据很水.建议以后这样的比赛不要挂到外面 ...

  7. 2014湖南农业大学ACM校赛

    湖南农业大学 2014年 ACM 校赛Problem 2014 /2/23  星期日  12:30-17:30 A.搜素      1794.查找指定的字符串      B.链表      1795 ...

  8. 西北大学2019年春季校赛题解(G-L)

    G. 房间迷宫 裸的最短路,spfa和dij都行.因为每个数字的因子不会很多. 话说现场赛过的人好少,都是RE什么的奇怪错误,看代码也是最短路,不知道什么锅QAQ,就算你过了吧..因为这个题赛前预估算 ...

  9. 东北农业大学考研计算机大纲,东北农业大学339农业知识综合一考研大纲

    东北农业大学339农业知识综合一考研大纲 2018年东北农业大学硕士研究生招生考研大纲 科目代码:339 科目名称:农业知识综合一 一.考试要求 主要考察考生掌握植物学基本概念.基本理论.包括植物的形 ...

最新文章

  1. 在Python中以扩展名.txt查找目录中的所有文件
  2. Git命令家底儿及Git数据通信原理详解
  3. 裸奔浏览器_【大数据早报】上网=“裸奔”?单凭浏览器历史记录就能锁定身份...
  4. Python 中的 import 与 from import 区别
  5. 一道小时候经常玩的数字游戏
  6. 预训练新范式!为什么Prompt会更有效?
  7. Laravel 成为最佳 PHP 框架的 14 个理由!
  8. hibernate笔记--使用注解(annotation)方式配置单(双)向多对一的映射关系
  9. 吴宗宪经典暴笑语录(笑不死你肯定是个异类)
  10. Python教程(非常好的教程)
  11. 关于12864显示器的SPI串行驱动问题的研究,AVR处理器(1)
  12. 三转CHM文件故障解决
  13. 2019年408考研算法题
  14. 物联网安全行业调研报告 - 市场现状分析与发展前景预测
  15. C语言入门——printf(““)左对齐与右对齐问题
  16. 怎么批量修改图片尺寸大小?
  17. 全站仪坐标计算机公式,全站仪测量时,坐标n,e,z如何对应于图形坐标x,y,z?...
  18. LVS DR TUN(IP Tunneling)介绍
  19. [20160213]关于ansi语法.txt
  20. 【KNIME经验】兼容读取多种日期格式数据

热门文章

  1. Cesnsjajsjsj
  2. 前端扑街仔的nginx配置
  3. 隐写术,图片中隐藏的秘密!
  4. javaSE-实用类
  5. 设置Windows 7锁屏背景图片
  6. 用C语言实现“7-7 12-24小时制”,基础编程由此开始(第七节)
  7. NBU网络备份大全之oracle系统热备份
  8. 将阿拉伯数字转换为罗马数字
  9. nmap扫描失败_网络协议arp学习和网络扫描
  10. Latex学习笔记(六)——自定义Latex模板