def factorial(n):
sum = 0;
if (n==0 or n==1):
return 1
else:
While(n!=0)
sum = sum + factorial(n);
n = n - 1;
return sum
factorial(3);
python 3.6 我需要找到这个:1! + 2! + ... + n!
答案 0 :(得分:0)
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
factorial(3)
这将返回6
您尝试使用递归函数,这很好,但是需要更改参数,在这种情况下,factorial(n-1)
答案 1 :(得分:0)
尝试
Runtime.getRuntime().exec("powershell.exe -File d:\\my-script.ps1")
答案 2 :(得分:0)
如果要有效地计算此阶乘和,建立起来比下降要容易。例如。 t
是增加的阶乘,def fac_sum(n):
t, f = 0, 1
for x in range(1, n+1):
f *= x
t += f
return t
In []:
fac_sum(3)
Out[]:
9
是这些阶乘的总数:
import itertools as it
import operator as op
def fac_sum(n):
return sum(it.accumulate(range(1, n+1), op.mul))
注意:您可以使用itertools.accumulate()
进行简化:
Qt::Horizontal
答案 3 :(得分:0)
问题是您使用递归的方式不好。 递归,虽然不是好朋友。
如果省略一会而做
sum = sum + factorial(n-1);
应该可以