Python练习题4.13求误差小于输入值的e的近似值

自然常数e可以用级数1+1/1!+1/2!+⋯+1/n!来近似计算。ei代表前i项求和。输入误差范围error,当

ei+1-ei<error,则表示e的近似值满足误差范围。

输入格式:

在一行输入误差范围。

输出格式:

在一行输出e的近似值(保留6位小数)。

代码如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-

#这个比阶乘多了个1,就说怎么看起来怪怪的。
def jc(n):
    sum = 1
    for i in range(3,n+1):
        sum = sum * (i-1)
    return sum

#定义自然常数e的方法,ei方法
def e(n):
    sum = 0
    for i in range(1,n+1):
        sum += 1/jc(i)
    return sum

#print(jc(n))
#print(e(n))

j = float(input())
n = 0
while True:
    n += 1
    if e(n+1) - e(n) < j:
        #这里应该输出e(n)的喔,但是测试结果是e(n-1)才正确
        print("{:.6f}".format(e(n+1)))
        break

这个程序根本上不是很难。如果学习了函数定义方法,很简单的。拆解程序,先做啥,在做啥,一步一步,程序就很简单了,看起来结构也清晰明了。

1、定义分母方法。

2、求ei的值。

3、比较输出。

这个题目属于第四章,应该是考察的while、for循环和if判断。但是如果只用这几个的话,可能程序会很复杂。(*^__^*) 嘻嘻

读书和健身总有一个在路上