首页 > 编程语言 > 详细

SPOJ Python Day2: Small factorials

时间:2014-06-25 13:16:59      阅读:302      评论:0      收藏:0      [点我收藏+]

24. Small factorials

这题目非常简单,求“小整数(1-100)”的阶乘。题目规定了时间和程序大小。

所以能想到的最简单的循环,递归,和全算出来查表都是不行的。

正确的方法的算法,如这个博客所示,写的非常清楚了,数组进位法:

http://www.open-open.com/home/space-135360-do-blog-id-9620.html

作者的例子举的也非常清晰。

但是。。。神奇的python有reduce函数,我也惊讶这个函数算阶乘这么快,直接可以AC。。。

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from functools import reduce
n = int(sys.stdin.readline())
for i in range(1, n+1):
    num = int(sys.stdin.readline().strip())
    if num == 0:
        print 1
    if num == 1:
        print 1
    else:
        factorial = reduce(lambda x,y: x*y, range(1, num + 1))
        print factorial

再贴一个reduce函数的用法的博客地址:http://blog.sina.com.cn/s/blog_798f21a00100wnrl.html

Mission Success~~

SPOJ Python Day2: Small factorials,布布扣,bubuko.com

SPOJ Python Day2: Small factorials

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

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