python函数总和s(2)的错误答案

时间:2018-11-04 20:52:27

标签: python

Using s(2)

def factfirst(n):
initalvalue=1

for y in range(1,2*n):
    initalvalue=initalvalue*y
return initalvalue

def powerfirst(n) :
return (-1)**(n-1)

def firstxpower(n) :
return (2*n)-1

def s(x) :
for n in range(1,x+1):
    total=0
    total+=(powerfirst(n)/factfirst(n))*(x**firstxpower(n))
return total
print(s(2))

我一直得到-1.3333,在用计算器计算时应该得到.90929,有人可以告诉我什么不正确吗?

1 个答案:

答案 0 :(得分:0)

在代码的这一部分中,您要在循环中设置total = 0,因此total始终在开始时始终为0,并在循环结束时给出最后一个数字。

应该是:

def s(x) :
    total=0
    for n in range(1,x+1):
        total+=(powerfirst(n)/factfirst(n))*(x**firstxpower(n))
    return total
print(s(2))