Fibonacci number

A sequence of numbers in which every number is the sum of the two preceding numbers, and the initial two values are constant as 0 and 1. The Fibonacci sequence is 0, 1, 1, 2, 3, 5, 8, etc.

This seemingly very simple sequence has in fact very fascinating applications! Starting with the number of petals on a flower, the number of spirals on a sunflower, the patterns on shells or on a pineapple, to the spiralling galaxies, all exhibit the Fibonacci number sequence!

Even the sum of squared Fibonacci numbers gives us Fibonacci numbers. We could keep going on and on about how amazing the Fibonacci numbers are, but let’s get to solving some problems related to the Fibonacci numbers and sequences.

Problem statement

Write a function that takes a parameter n where n >= 0 and (returns) the nth Fibonacci number.

Sample input

fibonacci(6)

Sample output

8

Implementation idea: Fibonacci

Let’s create a function prototype first:

int fibonacci(int nth)
  • Since we know for a fact that the sum of two preceding numbers gives the next Fibonacci number, we can maintain the two integer variables inside our function, namely prev and current to calculate the next Fibonacci number.

  • Also, since first two numbers as 0, are 0 as prev and 1 as curr, we can write if-else statements that return prev or current if n is 0 or 1 respectively.

  • In case n > 1, we can have a for loop and do the following:

    1. The initialization step in our for loop will start from 2 till the nth number.

    2. To calculate the third Fibonacci number, we’ll add prev and current and assign them to the variable next.

      next = prev + current;
      
    3. Now, to calculate the fourth Fibonacci number, we’ll need to update prev and current. The value in prev should become the value in curr, and the value in curr should become the value in next.

    4. The loop will run again for computing the next Fibonacci number.

    5. This is repeated till the nth Fibonacci number is calculated.

  • After the loop, we return curr. because curr will hold the nth computed Fibonacci number.

Exercise: Fibonacci number

Now that you know how to implement the function, write its code in the code editor below.

Press + to interact
int fibonacci(int nth)
{
// Add code here.
}

K-queries on Fibonacci numbers

Let us modify the problem statement.

Problem Statement

Write a program that takes a number k from the user where the number k represents that the user wants to do k queries to our Fibonacci function.

The program should prompt the user for each query and a number n, and prints the nth Fibonacci number. (Reuse the code above)

Sample input

Number of values (k) you want to know: 3

Sample output

Nth fibonacci number you want to know:20
F20 = 6765
Nth fibonacci number you want to know:2
F2 = 1
Nth fibonacci number you want to know:5
F5 = 5

Implementation idea: k fibonacci number

For example, say k is equal to 3, and the user wants to find the 6th, 3rd, and 4th Fibonacci numbers.

Then the program should print:

F6 = 8, F3 = 2, F4 = 3 

Make changes in the code editor below to write this program.

For your convenience, we’ve already added the fibonacci() function that computes the Fibonacci of any number n.

Exercise: k Fibonacci number

Write your code in the playground below and debug it step by step:

#include <iostream>
using namespace std;
int fibonacci(int nth);
void fibonacciPrinting(int numberOfTerms); 

int main()
{
    int k;
    cout << "Number of values (k) you want to know: ";
    cin >> k;
    fibonacciPrinting(k);
    return 0;
}

void fibonacciPrinting(int numberOfTerms)
{  
    // Add code here.   
}

int fibonacci(int nth)
{
    int prev = 0;
    int current = 1;
    int next;

    if(nth == 0)
    {
        return prev;
    }
    else if(nth == 1)
    {
        return current;
    }
    else
    {
         for(int i = 2; i <= nth; i++)
         {
             next = prev + current;
             prev = current;
             current = next;
         }
         return current;
    }
}






Exercise: fibonacciPrinting()

Click “Show Solution” below to see the solution.


Fibonacci sequence

We’ve already seen that each number in the Fibonacci sequence is formed by adding the two preceding numbers. Let us now print the Fibonacci sequence up to a certain limit.

Problem statement

Write a program that takes a parameter t and prints all the Fibonacci numbers less than t.

Sample input:

Print the Fibonacci numbers till:	50

Sample output:

The sequence up to 50 is:	
0, 1, 1, 2, 3, 5, 8, 13, 21, 34.

For your convenience, we’ve already added the fibonacci() function that computes the Fibonacci of any number n.

Exercise: Fibonacci sequence

Write your code in the playground and debug it step by step:

#include <iostream>
using namespace std;
void seriesFibonacci(int n);
int fibonacci(int nth); 

int main()
{
    int t;
    cout << "Print the fibonacci numbers till: ";
    cin >> t;
    seriesFibonacci(t);
    return 0;
}

void seriesFibonacci(int n)
{
   // Add code here. 
}

int fibonacci(int nth)
{
    int prev = 0;
    int current = 1;
    int next;

    if(nth == 0)
    {
        return prev;
    }
    else if(nth == 1)
    {
        return current;
    }
    else
    {
         for(int i = 2; i <= nth; i++)
         {
             next = prev + current;
             prev = current;
             current = next;
         }
         return current;
    }
}








Exercise: the seriesFibonacci() function

Click Show Solution below to see the solution.


Fibonacci sequence within a range

Let us now print the Fibonacci sequence present between two numbers.

Problem statement

Write a program that takes two parameters start and end and prints all the Fibonacci numbers between them.

Sample input:

Start:	3
End: 60

Sample output:

3, 5, 8, 13, 21, 34, 55

Exercise: Fibonacci sequence within a range

Write your code in the playground and debug it step by step:

#include<iostream>
using namespace std;
void rangeFibonacci(int start, int end);

int main()
{
 	int rangeStart, rangeEnd;
	cout << "Start, End: ";
	cin >> rangeStart >> rangeEnd;
    rangeFibonacci(rangeStart, rangeEnd);
    return 0;
}

void rangeFibonacci(int start, int end)
{
	// Add code here
}	
Exercise: the rangeFibonacci() function

Click Show Solution below to see the solution.


Sum of even Fibonacci numbers

Let us now print the sum of even Fibonacci numbers up to a certain number.

Problem statement

By considering the terms in the Fibonacci sequence whose sum does not exceed a number, say fifty thousand, find the sum of only the even-valued Fibonacci terms.

Sample input:

Sum of even Fibonacci numbers upto: 50000

Sample output:

Sum = 60696

For your convenience, we’ve already added the fibonacci() function that computes the Fibonacci of any number n.

Exercise: Sum of even Fibonacci numbers

Write your code in the playground and debug it step by step:

#include<iostream>
using namespace std;//This program will tell the nth Fibonacci number
int fibonacci(int nth);//It will return nth Fibonacci term 
int evenFibonacciSum(int number);

int main()
{
 	int term;
	cout << "Sum of even Fibonacci numbers upto: ";
	cin >> term;
    cout << "Sum = " << evenFibonacciSum(term);
    
	return 0;
}

int evenFibonacciSum(int number)
{
    // Write code here
}	

int fibonacci(int nth)
{
    int prev = 0;
    int current = 1;
    int next;

    if(nth == 0)
    {
        return prev;
    }
    else if(nth == 1)
    {
        return current;
    }
    else
    {
         for(int i = 2; i <= nth; i++)
         {
             next = prev + current;
             prev = current;
             current = next;
         }
         return current;
    }
}








Exercise: the evenFibonacciSum() function

Click Show Solution below to see the solution.