我试图在wiki中关注[a1, a2, a3...]
的连续分数示例。当我运行该程序时,我能够获得n = 2
的结果2.727272...75
但是,当我尝试n = 3
时,有两个输出,它们较低(获得2.394
和第二行2.3333
...)
我不确定是否需要在y =...
行添加另一个集合。如果是这样,每次更改i -1+
时,我都需要在y
添加另一组n
?
为什么我得到两行答案?我是如何完成循环的?
这是我的代码:
n = abs(int(input("Enter number: ")))
y = 0
d = 0
for i in range(n, 1, -1):
if i == n:
y = (i - 1) + ((i - 1)/((i-1)/(i + (i/(i + 1))))
d = d + y
else:
d = i + 1
e = 2 + (1/d)
print (e)
答案 0 :(得分:1)
来自wikipedia's article on the subject,
这是合适的选择(选择你喜欢的n
):
from __future__ import division, print_function
from sys import argv
from math import factorial
e = 0
n = int(argv[1]) if len(argv) > 1 else 100 # allowing to pass a value for n as an argument
for i in range(n):
e += 1 / factorial(i)
print(e)