如果数字为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
答案 0 :(得分:0)
如果math.factorial不支持这么大的数字你可以自己做:
fact = reduce(lambda x, y: x * y, [x+1 for x in range(b)])
>>> 4!!
620448401733239439360000
然而,@ interjay是正确的,math.factorial()应该在合理的时间内适用于最多8的数字。无论如何,算法应该是正确的,它可能永远不会回来或大量内存耗尽。