实现如下算法
可以有多种方式实现这个算法,简单列举几种基础算法
最后的答案是:
第一种
i = 1
n = 1
e = 1
while 1 / n >= pow(10, -6):
n *= i
e += 1 / n
i += 1
print(e)
第二种 递归算法实现阶乘
def fac(x):
if (x == 1 or x == 0):
return x;
else:
return x * fac(x - 1)
i = 1
s = 1
while 1 / fac(i) >= pow(10, -6):
s = s + 1 / fac(i)
i+=1
s = s + 1 / fac(i)
print(s)
第三种
i = 1
n = 1
e = 0
while True:
if 1 / n <= 10 ** -6:
e += 1 / n
break
else:
e += 1 / n
s = 1;
for j in range(1, i + 1): # 求n的阶乘
s = s * j
n = s
i += 1
print(e)
第四种
def sum(x):
i = 1
n = 1
e = 1
while 1 / n >= x:
n *= i
e += 1 / n
i += 1
return e
e = sum(pow(10, -6))
print(e)
第五种
def sum(x):
i = 1
n = 1
e = 0
while 1 / n >= x:
e += 1 / n
n *= i
i += 1
return e + 1 / n
e = sum(pow(10, -6))
print(e)
以上方法殊途同归,写法有所不同,算法大抵相同