1|Page
Dãy Fibonacci là gì ?
Dãy Fibonacci là tập hợp các chữ số bắt đầu bằng 2 chữ số 0 và 1 hoặc 1 và 1,
các chữ số tiếp theo bằng tổng 2 hai số đứng trước của dãy đó.
Điều kiện của dãy Fibonacci là:
F =F +F
n
n-1
n-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
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
2|Page
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
3|Page
Dãy Fibonacci sử dụng đệ qui trong C
#include<stdio.h>
#include<conio.h>
// khai bao ham indayFibonacci
void indayFibonacci(int n){
static int a=0,b=1,c;
if(n>0){
c = a + b;
a = b;
b = c;
printf("%d ",c);
indayFibonacci(n-1);
}
}
// ham main de in day Fibonacci
int main(){
int n;
printf("Ban hay nhap so phan tu trong day Fibonacci: ");
scanf("%d",&n);
printf("Hien thi day Fibonacci tren man hinh\n\n");
printf("%d %d ",0,1);
indayFibonacci(n-2); //n-2 boi vi 2 phan tu dau tien da duoc in
getch();
}
Biên dịch và chạy chương trình C trên sẽ cho kết quả:
4|Page
Bảng phân cơng nhiệm vụ các thành viên nhóm
Họ tên
Nhiệm vụ
Triệu Thị Xuân Mai
Tạo nội dung trình chiếu PowerPoint
Thạch Thị Ngọc Trân
Soạn demo C
Nguyễn Thị Chi
Tìm nội dung bài báo cáo Word