[英]How can I find chain of factorial of large number in python?
如果数字是3!!
应该结果6!
就是720
。 此代码适用于小整数,但会抛出错误Python int too large to convert to C long
为大整数的情况。 需要帮忙。 谢谢
import math
n = raw_input()
a = n.count('!')
b= int(n.replace('!',''))
while(a!=0):
fact =1*math.factorial(b)
b = fact
a-=1
print fact
如果math.factorial不支持这么大的数字,您可以自己做:
fact = reduce(lambda x, y: x * y, [x+1 for x in range(b)])
>>> 4!!
620448401733239439360000
但是,@ interjay是正确的,math.factorial()应该在合理的时间内处理最多8个数字。 无论如何,该算法应该是正确的,因为它可能永远也不会回来或对大量内存耗尽。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.