Re: [问题] 有一题我解不出来(哭)

楼主: yuscvscv (小可鱼)   2009-08-10 22:07:24
※ 引述《joleen60626 (Mr.Banana)》之铭言:
> http://zerojudge.tw/ShowProblem?problemid=d122
> 我会算阶乘
> 可是我的问题出在要怎么算几个0
> 我有想到用2和5去检验
> 可是程式码写不出来><
> 麻烦请高手指点~感恩
推 yuscvscv:记得是log? 08/10 21:45
推 yuscvscv:糟糕 题目没看清楚 我仔细看看 08/10 21:49
对不起,我以为是算总位数....
简单来说要配出10,得要2和5相乘,
不过在阶乘中2的个数必大于5的个数,所以我们可以忽略。
题目现在就转成,n!有几个5的质因子,
首先我们可以知道
1~n中
{
是5的倍数的有 n/5 个数
是25的倍数有 n/25 个数
...
是5^k的倍数有 n/(5^k)个数
}
全部合计就是n!中5的质因子个数了
上述的原理如果觉得有点抽象
举个例子好了
25会在 5的倍数被算一次 25的倍数又被算一次 可是125的倍数并不会被算一次(当然)
所以我们应该记录每5的倍数的最大次方数,可是
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
1 1 1 1 1 是5的倍数
1 是25的倍数
会发现总和刚好是25! 5的质因子个数。
大概是这样啦,我不太会讲那个概念。
楼主: yuscvscv (小可鱼)   2009-08-10 21:45:00
记得是log?糟糕 题目没看清楚 我仔细看看

Links booklink

Contact Us: admin [ a t ] ucptt.com