習(xí)題24-25

  • 有一分?jǐn)?shù)序列:2/1,3/2,5/3,8/5,13/8,21/13...求出這個(gè)數(shù)列的前20項(xiàng)之和。

  1. 方法一
a,b = 1,1
s = 0
for i in range(20):
        a,b = b, a+b
        s += b/a
print('前二十項(xiàng)的和為{}'.format(s))
#前二十項(xiàng)的和為32.66026079864164
  1. 方法二
a,b = 1,1
li = []
for i in range(20):
        a,b = b, a+b
        li.append(b/a)
print(li)
print('前二十項(xiàng)的和為{}'.format(sum(li)))
**************************************************************
[2.0, 1.5, 1.6666666666666667, 1.6, 1.625, 1.6153846153846154, 1.619047619047619, 1.6176470588235294, 1.6181818181818182, 1.6179775280898876, 1.6180555555555556, 1.6180257510729614, 1.6180371352785146, 1.618032786885246, 1.618034447821682, 1.6180338134001253, 1.618034055727554, 1.6180339631667064, 1.6180339985218033, 1.618033985017358]
前二十項(xiàng)的和為32.66026079864164
  1. 方法三
from functools import reduce
a,b = 1,1
li = []
for i in range(20):
        a,b = b, a+b
        li.append(b/a)
s = reduce(lambda x,y:x+y, li)
print('前二十項(xiàng)的和為{}'.format(s))
#前二十項(xiàng)的和為32.66026079864164

這邊出現(xiàn)了一個(gè)高端點(diǎn)的函數(shù)叫:reduce()
參考:https://www.runoob.com/python/python-func-reduce.html

  • 計(jì)算階乘和(1!+2!+3!+...+20?。?/h3>

  1. 方法一
n = eval(input('請輸入數(shù)字:'))
s = 0
for j in range(1,n+1):
        a = 1#還原
        for i in range(1,j+1):#計(jì)算每個(gè)n對應(yīng)的階乘
                a = a*i
        s += a
print(s)
#請輸入數(shù)字:20
#2561327494111820313
  • 方法二
    采用reduce()函數(shù)
from functools import reduce
s = 0
for n in range(1,21):
        li = list(range(1,n+1))
        a = reduce(lambda x,y:x*y,li)
        s += a
print(s)
  • 方法三
def factorial(n):
        if n==1:
                return 1
        else:
                return(n*factorial(n-1))
s = 0
li = []
for n in range(1,21):
        a = 0
        a = factorial(n)
        li.append(a)
print(sum(li))

這個(gè)是遞歸法

這么寫也可以:

def factorial(n):
        if n==1:
                return 1
        else:
                return(n*factorial(n-1))
s = 0
for n in range(1,21):
        a = 0
        a = factorial(n)
        s += a
print(s)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容