自然常数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判断。但是如果只用这几个的话,可能程序会很复杂。(*^__^*) 嘻嘻
读书和健身总有一个在路上