The Fibonacci sequence is a sequence where the next term is the sum of the previous two terms. The first two terms of the Fibonacci sequence are 0 followed by 1.
The Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21
Visit this page to learn about the Fibonacci sequence.
Fibonacci Series up to n terms
#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;
}
Output
Enter the number of terms: 10 Fibonacci Series: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34,
Let us suppose n = 10. First, we have printed the first two terms of the Fibonacci sequence before using a for loop to print the next n terms.
Let us see how the for loop works:
| 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 | 
Fibonacci Sequence Up to a Certain Number
#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;
}
Output
Enter a positive integer: 100 Fibonacci Series: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,
In this program, we have used a while loop to print all the Fibonacci numbers up to n.
If n is not part of the Fibonacci sequence, we print the sequence up to the number that is closest to (and lesser than) n.
Suppose n = 100. First, we print the first two terms t1 = 0 and t2 = 1.
Then the while loop prints the rest of the sequence using the nextTerm variable:
| 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. | 
		
