python中遞歸計算


https://www.cnblogs.com/panlq/p/9307203.html

https://www.cnblogs.com/yoyoketang/p/10114598.html

 

題目:用python實現1-100求和計算

用range實現1-100循環相加。

函數方法:

def sum():
    s = 0
    for i in range(101):
        s = s+i
    return s
print(sum())

 

新學了reduce函數,嘗試實現后發現更簡單。

reduce函數:

from functools import reduce    #需引入reduce函數
re = reduce((lambda x,y: x+y),list(range(101)))
print(re)  #可直接輸出

 

題目:計算N!

如果n=3,即為3*2*1

from functools import reduce
a = 3
b = reduce(lambda x,y:x*y,range(1,a+1))
print(b)

 

題目:計算斐波那契數列

1、1、2、3、5、8、13.....規律為從3開始的每一項都等於其前兩項的和,這是斐波那契數列。

求100以內的斐波那契數列

a,b = 0,1
while b < 100:
    print(b, end=",")
    a, b = b, a+b

 

求20個斐波那契數列

def fib_loop(n):
  a, b = 0, 1
  for i in range(n + 1):
    a, b = b, a + b
  return a
for i in range(20):
  print(fib_loop(i), end=',')

 

題目:計算冪的遞歸

比如3*3*3*3,4*4*4*4

def mi(x,n):
    if n == 0:
        return 1
    else:
        return x*mi(x,n-1)
print(mi(3, 4))
print(mi(4, 4))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM