Công thức để tính dãy số Fibonacci như sau:
Fo =F=1
F = Fai + Fa» (với n>=2)
Để tính giá trị của số Fibonacci thứ n, hai học sinh đã viết hai hàm như sau:

Sau khi xem xét hai chương trình này, một nhóm học sinh khác có các ý kiến như sau:
Lời giải chi tiết
Giải thích
Chúng ta cần xem xét từng ý kiến một:
f được sử dụng để lưu trữ kết quả của hàm đệ quy và chỉ đơn giản là một số nguyên, không phải kiểu danh sách. Vậy ý kiến này sai.f được khởi tạo là một danh sách (f = [1, 1]) và sau đó được mở rộng bằng phương thức append(). Vậy ý kiến này đúng.n = 4, hàm của học sinh thứ nhất sẽ thực hiện các lời gọi đệ quy như sau:
i = 2 đến i = 3), mỗi lần thực hiện 1 phép cộng:
O(2^n) vì nhiều lời gọi đệ quy lặp lại, trong khi thuật toán của học sinh thứ hai có độ phức tạp O(n) vì nó sử dụng vòng lặp đơn giản. Vậy ý kiến này sai.Chú ý khi giải
append để thêm phần tử.