**What is Fibonacci Series**

Fibonacci Series is a sequence of numbers in which each number(starting from the third number) is a sum of previous two numbers in the series and the first 2 elements of the series are 0 and 1. Thus the series becomes,

0, 1, 1, 2, 3, 5, 8, 13, 21 and so on….

**Problem**

Given a number as input, determine whether it belongs to the Fibonacci series or not. **Example**, input numbers such as 0, 5, 34, 55 belong to Fibonacci series but numbers such as 4, 9, 20, 52 do not belong to it.

We need to write a java program which reads a number as input and determines whether it will be among the members of Fibonacci series or not.

**Program**

The program to accomplish the above task is given below.

import java.util.Scanner; public class FibonacciNumberChecker { public static void main(String[] args) { Scanner reader = new Scanner(System.in); System.out.println("Enter a number"); // read the number to be checked int numberToCheck = reader.nextInt(); // close the reader reader.close(); int firstNumber = 0, secondNumber = 1, fibonacciNumber = 0; // loop till the current fibonacci number is less than the number to // check while (fibonacciNumber < numberToCheck) { // calculate the next fibonacci number fibonacciNumber = firstNumber + secondNumber; // move the fibonacci series ahead firstNumber = secondNumber; secondNumber = fibonacciNumber; } // compare the current fibonacci number with number to check if (numberToCheck == fibonacciNumber) { System.out.println("Number belongs to Fibonacci series"); } else { System.out.println("Number does not belong to Fibonacci series"); } } } |

**Output**

Enter a number

55

Number belongs to Fibonacci series

Enter a number

52

Number does not belong to Fibonacci series

**Logic**

The first step of this logic is to generate the Fibonacci series. For this, initialize first two members of the series(0 and 1) as two variables(`firstMember`

and `secondMember`

) and a third variable(`fibonacciNumber`

) to hold the next member of the series. Initiate a loop which will generate the members of Fibonacci series based on the calculation :

fibonacciNumber = firstMember + secondMember;

Now `firstMember`

variable is replaced with `secondMember`

variable and `secondMember`

is replaced with `fibonacciNumber`

since we need to move forward with Fibonacci series generation.

This series is generated till the last number generated is less than the number we need to check. At the end of the loop, compare the last number generated is equal to the number to be checked. If they are same, the number belongs to the Fibonacci series else it does not belong to the series.

**Let’s tweak in**

- Same logic can also be used to generate Fibonacci series till a given number. The only part omitted in that case will be the comparison of the numbers done after the loop.