首页 > 代码库 > N!中末尾有多少个0
N!中末尾有多少个0
问题:先从100!的末尾有多少零 => 再推广到 任意N!的末尾有多少个零
分析:首先想到慢慢求解出100!或N!,但计算机表示数有限,且要防止溢出。
则从数学上分析:一个整数若含有一个因子5则必然会在求100!时产生一个零,
问题转化为:求1到100,这100个整数中包含了多少个因子5.
若整数N能被25整除,则N包含2个因子5,若N能被5整除,则N包含1个因子5
#include<stdio.h>
int main()
{
int a,count = 0;
for(a = 5;a <= 100;a+=5){
count++;
if(!(a%25)) count++;
}
printf("The number of 0 in the end of 100! i s:%d.\n",count);
return 0;
}
任意N! :对任意N质因数分解 N=2^x*3^Y*5^Z...
已知2*5=10,产生一个0.则min(x,y),实际上x存在量大于y,
则根据公式z = N/5+N/5^2+...+N/5^K
N!中末尾有多少个0
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。