求1*2*3*......*100的积中末尾有几个0

2024-08-28 10:58
文章标签 几个 100 末尾 积中

本文主要是介绍求1*2*3*......*100的积中末尾有几个0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


从1到10,连续10个整数相乘: 1×2×3×4×5×6×7×8×9×10。 连乘积的末尾有几个0? 

答案是两个0。其中,从因数10得到1个0,从因数2和5相乘又得到1个0,共计两个。 
刚好两个0?会不会再多几个呢? 
如果不相信,可以把乘积计算出来,结果得到 
原式=3628800。你看,乘积的末尾刚好两个0,想多1个也没有。 

把规模再扩大一点,从1乘到30: 1×2×3×4×…×29×30。现在乘积的末尾共有几个0? 
很明显,至少有6个0。你看,从1到30,这里面的5、10、15、20、25和30都是5的倍数。从它们每个数可以得到1个0;它们共有6个数,可以得到6个0。 
刚好6个0?会不会再多一些呢? 
能多不能多,全看质因数5的个数。25是5的平方,含有两个质因数5,这里多出1个5来。从1乘到30,虽然30个因数中只有6个是5的倍数,但是却含有7个质因数5。所以乘积的末尾共有7个0。 

乘到30的会做了,无论多大范围的也就会做了。 
例如,这次乘多一些,从1乘到100: 1×2×3×4×…×99×100。现在的乘积末尾共有多少个0?答案是24个。 

[解法一]:
[100/5]+[100/5^2]+[100/5^3]+……=24
所以1*2*3*......*100的积中末尾有24个连续的0
其中[x]读作高斯x,表示不大于x的最大整数。 
如[1.2]=1 
  [5]=5   [-1.5]=-2 
要求x!末尾有多少个连续的0,公式是 [x/5]+[x/5^2]+[x/5^3]+[x/5^4]+[x/5^5]+……

[解法二]:
将原式分解质因数,也就是说将它写成完全由质因数乘积的形式,如果要形成0(或者10)则要看这个质因数乘积的式子中2和5的对数,因为一对形成一个零嘛。可以很直观的看出来2的个数是明显多于5的,所以只要看5的个数就行了,式子中能分解出5的数有:
5、10、15、20、25、30、35、40、45、50、55、60、65、70、75、80、85、90、95、100
而通过分解质因数对应
得到5的个数分别是:
1、 1、 1、 1、 2、 1、 1、 1、 1、 2、 1、 1、 1、 1、 2、 1
、 1、 1、 1、 2
总共有24个,所以总共会形成24个0

这篇关于求1*2*3*......*100的积中末尾有几个0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1114570

相关文章

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

使用JS/Jquery获得父窗口的几个方法(笔记)

<pre name="code" class="javascript">取父窗口的元素方法:$(selector, window.parent.document);那么你取父窗口的父窗口的元素就可以用:$(selector, window.parent.parent.document);如题: $(selector, window.top.document);//获得顶级窗口里面的元素 $(

Verybot的几个视频

1、Verybot的运动控制                 http://v.youku.com/v_show/id_XNjYxNjg4MTM2.html           2、Verybot比较初步的网络视频监控           http://v.youku.com/v_show/id_XNjYxNjkyMjg0.html           3、V

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们

【LeetCode热题100】前缀和

这篇博客共记录了8道前缀和算法相关的题目,分别是:【模版】前缀和、【模版】二维前缀和、寻找数组的中心下标、除自身以外数组的乘积、和为K的子数组、和可被K整除的子数组、连续数组、矩阵区域和。 #include <iostream>#include <vector>using namespace std;int main() {//1. 读取数据int n = 0, q = 0;ci

牛客小白月赛100部分题解

比赛地址:牛客小白月赛100_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ A.ACM中的A题 #include<bits/stdc++.h>using namespace std;#define ll long long#define ull = unsigned long longvoid solve() {ll a,b,c;cin>>a>>b>

Java虚拟机垃圾回收的几个关键问题

20151008 GC的几个关键问题,触发条件,触发的机制 主线是数据的移动,从什么位置到什么位置,移动的条件是什么? 1 垃圾收集在什么时候触发? GC都是在带满了的时候触发的,每次触发都是把不会用的不可达的对象空间回收了,留下还在用的对象。 1) MinorGC的触发是伊甸园空间满的时候 2) FullGC的触发是在老年代满的时候 2 垃圾回收的时候做哪些工作? 1) 一个新的对象new出

牛客小白月赛100(A,B,C,D,E,F三元环计数)

比赛链接 官方讲解 这场比较简单,ABC都很签到,D是个不太裸需要预处理的 B F S BFS BFS 搜索,E是调和级数暴力枚举,F是三元环计数。三元环考的比较少,没见过可能会偏难。 A ACM中的A题 思路: 就是枚举每个边变成原来的两倍,然后看看两短边之和是否大于第三边即可。 不能只给最短边乘 2 2 2,比如 1 4 8 这组数据,也不能只给第二短边乘 2 2 2,比

诺瓦星云校招嵌入式面试题及参考答案(100+面试题、10万字长文)

SPI 通信有哪些内核接口? 在嵌入式系统中,SPI(Serial Peripheral Interface,串行外设接口)通信通常涉及以下内核接口: 时钟控制接口:用于控制 SPI 时钟的频率和相位。通过设置时钟寄存器,可以调整 SPI 通信的速度以适应不同的外设需求。数据发送和接收接口:负责将数据从主机发送到从机以及从从机接收数据到主机。这些接口通常包括数据寄存器,用于存储待发