Trong ví dụ này, bạn sẽ học cách hiển thị dãy Fibonacci của n số đầu tiên (do người dùng nhập vào).
Để hiểu được ví dụ này, bạn nên có kiến thức về các chủ đề lập trình C sau :
- C Programming Operators
- C while and do…while Loop
- C for Loop
- C break and continue
Dãy Fibonacci là một dãy trong đó số hạng tiếp theo là tổng của hai số hạng trước đó. Hai số hạng đầu tiên của dãy Fibonacci là 0 theo sau là 1.
The Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21
Truy cập trang này để tìm hiểu về dãy Fibonacci .
Chuỗi Fibonacci lên đến n điều khoản
#include <stdio.h>
int main() {
int i, n;
// initialize first and second terms
int t1 = 0, t2 = 1;
// initialize the next term (3rd term)
int nextTerm = t1 + t2;
// get no. of terms from user
printf("Enter the number of terms: ");
scanf("%d", &n);
// print the first two terms t1 and t2
printf("Fibonacci Series: %d, %d, ", t1, t2);
// print 3rd to nth terms
for (i = 3; i <= n; ++i) {
printf("%d, ", nextTerm);
t1 = t2;
t2 = nextTerm;
nextTerm = t1 + t2;
}
return 0;
}
Đầu ra
Enter the number of terms: 10 Fibonacci Series: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,
Hãy để chúng tôi giả sử n = 10
. Đầu tiên, chúng ta đã in hai số hạng đầu tiên của dãy Fibonacci trước khi sử dụng for
vòng lặp để in n số hạng tiếp theo .
Hãy để chúng tôi xem cách for
hoạt động của vòng lặp:
i | t1 | t2 | nextTerm |
---|---|---|---|
3 | 0 | 1 | 1 |
4 | 1 | 1 | 2 |
5 | 1 | 2 | 3 |
6 | 2 | 3 | 5 |
7 | 3 | 5 | 8 |
8 | 5 | 8 | 13 |
9 | 8 | 13 | 21 |
10 | 13 | 21 | 34 |
Trình tự Fibonacci lên đến một số nhất định
#include <stdio.h>
int main() {
int t1 = 0, t2 = 1, nextTerm = 0, n;
printf("Enter a positive number: ");
scanf("%d", &n);
// displays the first two terms which is always 0 and 1
printf("Fibonacci Series: %d, %d, ", t1, t2);
nextTerm = t1 + t2;
while (nextTerm <= n) {
printf("%d, ", nextTerm);
t1 = t2;
t2 = nextTerm;
nextTerm = t1 + t2;
}
return 0;
}
Đầu ra
Enter a positive integer: 100 Fibonacci Series: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,
Trong chương trình này, chúng tôi đã sử dụng một while
vòng lặp để in tất cả các số Fibonacci lên đến n .
Nếu n không phải là một phần của dãy Fibonacci, chúng tôi in dãy lên đến số gần nhất với (và nhỏ hơn) n .
Giả sử n = 100
. Đầu tiên, chúng tôi in hai điều khoản đầu tiên t1 = 0
và t2 = 1
.
Sau đó, while
vòng lặp in phần còn lại của chuỗi bằng cách sử dụng biến nextTerm :
t1 | t2 | nextTerm | nextTerm <= n |
---|---|---|---|
0 | 1 | 1 | true . Print nextTerm. |
1 | 1 | 2 | true . Print nextTerm. |
1 | 2 | 3 | true . Print nextTerm. |
… | … | … | … |
34 | 55 | 89 | true . Print nextTerm. |
55 | 89 | 144 | false . Terminate Loop. |