繁体   English   中英

如何在python中找到大量的阶乘链?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM