100阶乘末尾有多少个零

简介:

题目:1*2*3*……*100 求结果末尾有多少个零

 

分析:一般类似的题目都会蕴含某种规律或简便方法的,阶乘末尾一个零表示一个进位,则相当于乘以10而10 是由2*5所得,在1~100当中,可以产生10的有:0 2 4 5 6 8 结尾的数字,显然2是足够的,因为4、6、8当中都含有因子2,所以都可看当是2,那么关键在于5的数量了那么该问题的实质是要求出1~100含有多少个5由特殊推广到一般的论证过程可得:      

        1、 每隔5个,会产生一个0,比如 5, 10 ,15,20.。。
        2 、每隔 5×5 个会多产生出一个0,比如 25,50,75,100 
        3 、每隔 5×5×5 会多出一个0,比如125.

所以100!末尾有多少个零为:        100/5+100/25=20+4=24那么1000!末尾有多少个零呢?同理得:        1000/5+1000/25+1000/125=200+40+8+1=249
到此,问题解决了,但我们在学习过程中应当学会发散思维、举一反三
接着,请问N!的末尾有多少个零呢??
其实 也是同理的

        N/5+N/25+……

如计算 2009! 的末尾有多少个0:2009/5 = 401        

1~2009之间有 401 个数是 5 的倍数(余数省略).401/5 = 80           

1~2009 之间有 80 个数是 25 的倍数.80/5 = 16            

1~2009 之间有 16 个数是 125 的倍数.  16/5 = 3               

1~2009 之间有 3个数是 625 的倍数.      3/5 = 0                  

1~2009 之间有 0 个数是 3125 的倍数.

所以, 2009! 的末尾有 401 + 80 + 16 + 3 = 500 个0.

 

代码:

ret =0;
while(N)
{
       ret+=N/5;
       N/=5;
}

 


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

 

 

10000的阶乘,末尾有多少个连续的零?

答案: 10000/5+10000/25+10000/125+10000/625+10000/3125=2000+400+80+16+3=2499

 

要善于发现这类规律!!!

最后再扩展一个题。

1到100的阶乘的和的末位数是几?

答案:3

这题找规律,1!=1; 2!=2; 3!=6; 4!=24; 5!=120;…你可以发现5的阶乘之后的末尾都是0。所以只有1到4的阶乘会产生个位数,所以1+2+6+24=33,所以答案就是3!

 



本文转自夏雪冬日博客园博客,原文链接:http://www.cnblogs.com/heyonggang/p/3386289.html,如需转载请自行联系原作者

目录
相关文章
|
存储 容器
科普:如果电容器阻断直流电,为什么还要在直流电路中使用电容器?
如果电容器阻止直流,那么为什么它用于直流电路?问题不应该是为什么,而是如何!电容器在直流电路中有许多应用,如旁路、滤波、耦合和去耦。因此,利用这种阻隔直流和通过交流的特性,电容器可用于不同的应用。这取决于它连接到电路的方式、电容值、信号频率、电压和其他几个因素。
2130 0
科普:如果电容器阻断直流电,为什么还要在直流电路中使用电容器?
|
存储 监控 安全
ONVIF协议介绍
ONVIF协议介绍
5837 0
|
分布式计算 数据处理 MaxCompute
MaxCompute单字段拆分多行多列
数据导入MaxCompute后,需要把某个字段String类型(多键值(key-value )对 ) 拆分成多行,每行有都有key, value两列。比如“{k1:v1,k2:v2,k3:k4}” 拆成多行,每行两个值key,value 分别为k1,v1;k2,v2;k3;k4。
4331 0
|
8月前
|
机器学习/深度学习 算法 量子技术
《深度揭秘:拉普拉斯平滑在朴素贝叶斯算法中的关键作用与参数选择之道》
朴素贝叶斯算法在文本分类、情感分析等领域广泛应用,但常遇零概率问题,即某些特征从未与特定类别同时出现,导致条件概率为零,影响模型准确性。拉普拉斯平滑通过在计数上加一小正数(如α=1),避免了零概率问题,提升了模型的稳定性和泛化能力。选择合适的平滑参数α至关重要:经验法则通常设α=1;交叉验证可找到最优α值;根据数据规模和特征分布调整α也能有效提升模型性能。
361 19
|
消息中间件 存储 监控
Kraft模式下Kafka脚本的使用
【9月更文挑战第9天】在Kraft模式下,使用Kafka脚本涉及以下几个关键步骤:启动Zookeeper和Kafka服务、创建主题、发送与消费消息、查看主题列表及描述主题详情。通过指定配置文件与相关参数,如`--replication-factor`和`--partitions`,可以灵活管理主题。此外,确保根据实际需求调整配置文件中的参数,并监控日志以维持最佳性能与及时问题处理。
471 8
|
负载均衡 安全 网络安全
|
Java
java读取txt文件,使用逗号,分号,空格,回车将文件内容分割成一个一个的词组,找出所有重复的词组
java读取txt文件,使用逗号,分号,空格,回车将文件内容分割成一个一个的词组,找出所有重复的词组
274 38
|
安全 关系型数据库 MySQL
mysql 密码复杂度的配置修改
要修改MySQL密码复杂度的配置,你可以按照以下步骤进行操作: 1. 打开MySQL的配置文件。可以通过命令行或文本编辑器打开,文件路径通常为 `/etc/mysql/my.cnf` 或 `/etc/my.cnf`。 2. 在配置文件中找到 `[mysqld]` 或 `[mysql]` 段落,这取决于你所使用的MySQL版本。 3. 在该段落中,查找 `validate_password` 相关的配置项,通常有以下几个配置项: - `validate_password_length`:密码长度要求。 - `validate_password_number_count`:要求密码中包含的
1015 1
|
弹性计算 负载均衡 小程序
阿里云服务器免费申请3个月试用攻略
阿里云服务器免费申请3个月试用攻略,阿里云服务器免费试用申请链接入口,阿里云个人用户和企业用户均可申请免费试用,最高可以免费使用3个月,阿里云服务器网分享阿里云服务器免费试用申请入口链接及云服务器配置
4409 0