阶乘问题 C++

Problemdescription从输入文件中读取一个数n,求出n!中末尾0的个数。Input输入包含若干组数据。第一行上有一个整数m,指明接下来的数字的个数。然后是m... Problem description 从输入文件中读取一个数n,求出n!中末尾0的个数。

Input 输入包含若干组数据。第一行上有一个整数m,指明接下来的数字的个数。然后是m行,每一行包含一个确定的正整数n,1£n£1000000000。

Output 对输入行中的每一个数据n,输出一行,其内容是n!中末尾0的个数。

Time Limit: 1000ms, Special Time Limit:2500ms, MemoryLimit:32768KB
所以不能用判断2和5的个数来比较,希望有详细点的中文注释,,
展开
 我来答
百度网友ce9825aa2
2013-01-30 · 超过30用户采纳过TA的回答
知道答主
回答量:62
采纳率:0%
帮助的人:76.5万
展开全部
首先 0 只能由 2 5 10 得到,所以就是算 2 5 正好组合的数量+10的数量,但是 2的数量肯定比5多,而且 10 可以 拆分出一个 5,其实只要算5有多少个就可以了,那么 5的个数怎么得到呢?
那么以 100的阶乘为例:
首先要知道:
1 2 3 4 5 6 7 …… 100
100 99 98 97 96 95 94 …… 1

从所有有 5 的里面取出 1个 5 : (1+(100-5))*(100/5)/2
从所有剩下的 5 里面取出 1个 5 : (1+(100-5*5))*(100/(5*5))/2
……

一直算到最后,那么总和就是答案
jackwind1987
2013-01-30 · TA获得超过2738个赞
知道大有可为答主
回答量:1268
采纳率:50%
帮助的人:490万
展开全部
这道题就是用2和5的个数来比较的,怎么不能用了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飞天彘
2013-01-30
知道答主
回答量:45
采纳率:0%
帮助的人:16.9万
展开全部
书上这些东西都有啊,好好看看书,阶乘是编程里面实现算法最基本的手段,所以好好了解下吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式