Yêu cầu:
Viết chương trình in dãy số Fibonanci nhỏ hơn giá trị N. Biết rằng:
f(0) = f(1) = 1
f(n) = f(n – 1) + f(n – 2)
Thuật toán:
– Cách 1: dùng đệ quy
– Cách 2: dùng công thức f(n) = f(n – 1) + f(n – 2)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
/************************************************************ #include "stdio.h" #include "conio.h" #define F0 1 void main() { int N = 0; int Fn; int Fn1, Fn2; Fn1 = Fn2 = F0; do { printf("\nNhap vao so nguyen duong N: "); scanf("%d", &N); } while(N <= 1); printf("\nFibonanci :\t%d\t%d", Fn1, Fn2); while(Fn1 + Fn2 < N) { Fn = Fn1 + Fn2; printf("\t%d", Fn); Fn1 = Fn2; Fn2 = Fn; } getch(); } |
Kết quả:
1 2 |
Nhap vao so nguyen duong N: 100 Fibonanci : 1 1 2 3 5 8 13 21 34 55 89 |
Leave a Reply