首页 > 编程语言 > 详细

SPOJ Python Day1: Factorial

时间:2014-06-24 14:15:06      阅读:353      评论:0      收藏:0      [点我收藏+]

11. Factorial

这个题同样非常简单,就是求一个数的阶乘的尾部有多少个0.

思路是有2*5才会出0,然后2肯定比5多,所以就是数N!中有多少个因子5.

关于如何数出因子5的个数中http://www.chinaunix.net/old_jh/23/926848.html这篇文章介绍的非常详细。我就不谈了,不过想说写程序和算法是两个非常不同的工作,我现在的目标是,大概看一下前人的成法,主要完成编程工作。

最终推出的计算公式为:

当$0 < n < 5$时,$f(n!) = 0$;

当$ n > 5$ 时, $f(n!) = k + f(k!)$,其中$k = \frac{n}{5}$

EX:

$f(100!) = 20 + f(20!) = 20 + 4 + f(4!) = 24$

Sample Input:

6
3
60
100
1024
23456
8735373
第一行是底下输入的行数,后边就是要阶乘求结尾0个数的数。
# Filename: SPOJ11 Factorial
import sys


t = int(sys.stdin.readline())
for i in range (0, t):
    n = int(sys.stdin.readline())
    x = 0

    while (n):
        n = n/5
        x = x + n
    print x
Mission Success~
Technorati Tags: ,

SPOJ Python Day1: Factorial,布布扣,bubuko.com

SPOJ Python Day1: Factorial

原文:http://www.cnblogs.com/xmuer/p/3804867.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!