中英文网站是咋做的,做石油系统的公司网站,庆阳网站哪里做,免费服务器购买题目#xff1a; php实现N的阶乘末尾有多个0 
描述#xff1a; 阶乘 N!  123*…N; 比如 5!  12345  120 末端有1个0 解题思路#xff1a; N!  K*(10^M) N的阶乘为K和10的M次方的乘积#xff0c;那么N!末尾就有M个0。如果将N的阶乘分解后#xff0c;那么N的阶乘可以分解为 php实现N的阶乘末尾有多个0 
描述 阶乘 N!  123*…N; 比如 5!  12345  120 末端有1个0 解题思路 N!  K*(10^M) N的阶乘为K和10的M次方的乘积那么N!末尾就有M个0。如果将N的阶乘分解后那么N的阶乘可以分解为 2的X次方3的Y次方4的Z次方…的乘积。 由于10  2 * 5,所以M只能和X和Z有关每一对2和5相乘就可以得到一个10 于是M  MIN( X,Z),不难看出X大于Z 因为被2整除的频率比被5整除的频率高的多。所以可以把公式简化为MZ 所以我们求解N的阶乘最后的0.相当于求解里面有多个5的因子 
当我们遇到一大问题可以拆成一个个小的问题来求解。 function factorial($n){$n  intval($n);if ($n  0) {return 0;}$sum  0;for ($i  5; $i  $n; $i  $i  5) {$j  $i;//求解5的个数 比如15 里面有3个5while ($j % 5  0) {$sum;$j  $j / 5;}}return $sum;}