自然常數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判斷。但是如果只用這幾個的話,可能程序會很復雜。(*^__^*) 嘻嘻
讀書和健身總有一個在路上