首页 > 代码库 > SPOJ Python Day2: Small factorials
SPOJ Python Day2: Small factorials
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 sysfrom functools import reducen = 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~~
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。