C语言 选择题填空题

下面程序段的功能是计算1000!的末尾含有多少个零,请选择填空,(提示:只要算出1000!中含有因数5的个数即可)for(k=0,i=5;i<=1000;i+=5){m=... 下面程序段的功能是计算1000!的末尾含有多少个零,请选择填空,(提示:只要算出1000!中含有因数5的个数即可)

for(k=0,i=5;i<=1000;i+=5)
{
m=i;
while(_____) {k++;m=m/5;}
}
答案是m%5==0

我不明白(提示:只要算出1000!中含有因数5的个数即可)中含有因数5的个数是什么意思

麻烦帮每一步帮我详细解释一下 我是初学者 有点迷糊
展开
 我来答
xingfinal
2011-01-01 · TA获得超过422个赞
知道答主
回答量:184
采纳率:0%
帮助的人:210万
展开全部
不是要算末尾有多少0嘛,也就说如果让1000!一直除以10,看能除多少次.
那么,这个问题就变相成为:一直除以5*2,看能除多少次.想象看,能被5整除的数只有末尾是5和0的数字,也就是说只有XXXXXX5,和XXXXXX0是可以整除5的,其中X表示任意数字.而从1到1000,能整除2的有的是,远远超过能整除5的,所以问题就变相成为看有多少个能整除5的数字了.
while的括号中是m%5 == 0,就是保证让m能一直整除5,知道m不能整除5为止.
对于整个的for循环,只要从5开始,每次都+=5,因为只有这些数字才能整除5.
洋桂花风娟
2020-02-13 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:31%
帮助的人:899万
展开全部
含有因数5的个数---指的是能被五整除的数的个数
m=m/5
等价于
m除以5的商,不计余数
for(k=0,i=5;i<=1000;i+=5)
//k,i的初值为0,5
i在小于或等于1000的情况下执行下面的语句,i每次加5
{
m=i;
//i复制给m
while(_____)
{k++;m=m/5;}
//()中内容为真的情况下执行下面一句话,k+1,m除以5
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-01-01
展开全部
就是可以除以多少个5,而不会变成分数,比如100可以除以两个5,而不变为分数,故其末尾含两个0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wind556
2011-01-01 · TA获得超过250个赞
知道小有建树答主
回答量:673
采纳率:50%
帮助的人:261万
展开全部
10含有0的个数是1 是因为10=2*5 只含有1个5 这么说 明白了吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kcvutd
2011-01-02 · TA获得超过222个赞
知道答主
回答量:241
采纳率:0%
帮助的人:160万
展开全部
C
1
3
3
数据类型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式