python定义函数计算1+3/2!+5/3!+…,(2n-
计算结果保留小数点后8位。
例子给错了,应该是(2n-1)/n!
假设更正过来,要求 1+3/2!+5/3!+…,(2n-1)/n!,可以注意到,该数列的递归规律为 f(i) = f(i-1) * (2i-1) / ((2i-3)*i)
从而可以变成 O(n) 的复杂度
def fun(n):
s = [1]
for i in range(2, n+1):
s.append(s[i-2]*(2*i-1)/(2*i-3)/i)
return round(sum(s), 8)
n = int(input())
print(fun(n))
def P(n):
if n < 2:
return 1
return n * P(n - 1)
def X(n):
return round(sum([1] + [(v + 2)/P(v + 1) for v in range(1,n)]),8)
n = 11
print('{:.8f}'.format(X(n)))