Dãy Fibonacci¶
Tóm lược nội dung
Bài này trình bày cách giải bài toán dãy Fibonacci bằng kỹ thuật đệ quy.
Bài toán¶
Yêu cầu:
Dãy số Fibonacci được định nghĩa như sau:
- \(F_0 = 0\)
- \(F_1 = 1\)
- \(F_n = F_{n - 1} + F_{n - 2} \text{ với } n > 1\)
Viết chương trình xác định số Fibonacci thứ n.
Đầu vào:
Số nguyên dương n.
Đầu ra:
Số Fibonacci thứ n.
Bộ kiểm thử:
| STT | Đầu vào | Đầu ra |
|---|---|---|
| 1 | 0 | 0 |
| 2 | 1 | 1 |
| 3 | 2 | 1 |
| 4 | 3 | 2 |
| 5 | 4 | 3 |
| 6 | 5 | 5 |
| 7 | 10 | 55 |
| 8 | 30 | 832040 |
Cách giải đề xuất¶
Ý tưởng chính
-
Trường hợp cơ sở:
Bài toán này có hai trường hợp cơ sở:
n == 0: trả về giá trị0.n == 1: trả về giá trị1.
-
Trường hợp đệ quy:
Hàm đệ quy gọi lại chính nó theo công thức truy hồi \(F_n = F_{n - 1} + F_{n - 2}\).
Viết chương trình
1. Viết hàm fibonacci() dùng để tìm số Fibonacci.
Hàm gồm có một tham số là n và giá trị trả về là số Fibonacci thứ n.
2. Viết chương trình chính:
- Cho người dùng nhập vào một số nguyên dương, lưu vào biến
number. - Gọi hàm
fibonacci()ra thực hiện, lưu kết quả vào biếnresult. - In ra kết quả.
3. Chạy chương trình trên, nhập vào 10, kết quả như sau:
Mã nguồn¶
Code đầy đủ được đặt tại: