下面程序段的功能是计算1000!的末尾含有多少个零。这个1000!是什么意思,为什么是这样编写的,求解释
#include<stdio.h>main(){intk,i,m;for(k=0,i=5;i<=1000;i+=5){m=i;while(m%5==0){k++;m=m/...
#include<stdio.h>
main()
{
int k,i,m;
for(k=0,i=5;i<=1000;i+=5)
{
m=i;
while(m%5==0)
{
k++;
m=m/5;
}
} printf("%d",k);
} 展开
main()
{
int k,i,m;
for(k=0,i=5;i<=1000;i+=5)
{
m=i;
while(m%5==0)
{
k++;
m=m/5;
}
} printf("%d",k);
} 展开
展开全部
n!=1*2*3*4*...*n
#include<stdio.h>
main()
{
int k,i,m;
for(k=0,i=5;i<=1000;i+=5) //只有乘以含有因子5的数,才会使结果末尾的0增加
{
m=i; //复制i的副本
while(m%5==0) //如果m含有个或多个因子5
{
k++; m=m/5; //每除去一个因子5,计数就加1(5*2就等于10,就使末尾的0的个数加1,而因子2是非常多的)
}
}
printf("%d",k); //输出n!中总共含有几个因子5(也就是n!末尾有几个0)
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询