Dãy Fibonacci trong Cấu trúc dữ liệu và giải thuật
Dãy Fibonacci là gì ?
Dãy Fibonacci tạo dãy các số bằng cách cộng hai số đằng trước. Dãy Fibonacci bắt đầu từ hai số: F0 & F1. Giá trị ban đầu của F0 & F1 có thể tương ứng là 0, 1 hoặc 1, 1.
Điều kiện của dãy Fibonacci là:
Fn = Fn-1 + Fn-2
Ví dụ một dãy Fibonacci:
F8 = 0 1 1 2 3 5 8 13
Ví dụ một dãy Fibonacci khác:
F8 = 1 1 2 3 5 8 13 21
Dưới đây là phần minh họa cho dãy Fibonacci trên:
Giải thuật sử dụng vòng lặp cho dãy Fibonacci
Đầu tiên, giải thuật của chúng ta sẽ sử dụng vòng lặp để tạo dãy Fibonacci:
Bắt đầu giải thuật Fibonacci(n) khai báo f0, f1, fib, loop Thiết lập f0 là 0 Thiết lập f1 là 1 hiển thị f0, f1 for loop ← 1 tới n fib ← f0 + f1 f0 ← f1 f1 ← fib hiển thị dãy fib kết thúc for Kết thúc giải thuật
Để theo dõi phần code đầy đủ của Dãy Fibonacci trong C, mời bạn click vào chương: Sử dụng vòng lặp giải Dãy Fibonacci trong C.
Giải thuật sử dụng đệ qui cho dãy Fibonacci
Tiếp theo, dựa vào đệ qui chúng ta sẽ thiết kế giải thuật cho dãy Fibonacci như sau:
Bắt đầu giải thuật Fibonacci(n) khai báo f0, f1, fib, loop Thiết lập f0 là 0 Thiết lập f1 là 1 hiển thị f0, f1 for loop ← 1 tới n fib ← f0 + f1 f0 ← f1 f1 ← fib hiển thị dãy fib kết thúc for Kết thúc giải thuật
Để theo dõi phần code đầy đủ của Dãy Fibonacci trong C, mời bạn click vào chương: Sử dụng đệ qui giải Dãy Fibonnaci trong C.
Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.
Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.
Bài học Cấu trúc dữ liệu và giải thuật phổ biến tại vietjack.com:
- Giải thuật tiệm cận - Asymptotic Algorithms
- Cấu trúc dữ liệu mảng (Array)
- Danh sách liên kết - Linked List
- Cấu trúc dữ liệu ngăn xếp - Stack
- Cấu trúc dữ liệu hàng đợi - Queue
- Tìm kiếm tuyến tính - Linear Search
- Tìm kiếm nhị phân - Binary Search
- Sắp xếp nổi bọt - Bubble Sort
- Sắp xếp chèn - Insertion Sort