สมมติว่าเรามีตัวเลข n เราต้องหาพจน์ฟีโบนักชีที่ n โดยกำหนดฟังก์ชันแบบเรียกซ้ำ
ดังนั้น หากอินพุตมีค่าเท่ากับ n =8 ผลลัพธ์จะเป็น 13 เนื่องจากเงื่อนไขฟีโบนักชีสองสามตัวแรกคือ 0, 1, 1, 2, 3, 5, 8, 13, 21, 34...
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- กำหนดฟังก์ชัน Solve() นี่จะใช้เวลา n
- ถ้า n <=2 แล้ว
- ผลตอบแทน n - 1
- มิฉะนั้น
- ผลตอบแทนการแก้(n - 1) + แก้(n - 2)
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def solve(n): if n <= 2: return n - 1 else: return solve(n - 1) + solve(n - 2) n = 8 print(solve(n))
อินพุต
8
ผลลัพธ์
13