Pages

Monday, April 15, 2019

Java Program to Display Fibonacci Series | Find nth Fibonacci number using recursion

Java Program to Display Fibonacci Series:

The Fibonacci series is a series where the next term is the sum of previous two numbers. The first two numbers of the Fibonacci sequence is 0 followed by 1.

Java Program to Display Fibonacci Series


The Fibonacci numbers are the sums of the "shallow" diagonals (shown in red) of Pascal's triangle as below.



We will learn how to find the Fibonacci series to print the n numbers in the series. Below is the example Fibonacci series for first 20 numbers.


0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765


We can find this in many ways. Below three ways, we will learn in this post.

1) While Loop
2) For Loop
3) Using Recursive



The Java program is successfully compiled and run on a Windows system.


Example 1: Display Fibonacci series using for loop

Example program to print the Fibonacci numbers using for loop.

package examples.java.w3schools.array.programs;

import java.util.Scanner;

public class FibonaciSeries {

 public static void main(String[] args) {

  int n, num1 = 0, num2 = 1;

  Scanner s = new Scanner(System.in);
  System.out.print("Enter value of n:");
  n = s.nextInt();

  System.out.print("First " + n + " Numbers in the Fibonacci series: ");
  int i = 1;
  while (i <= n) {
   if (i == n)
    System.out.print(num1);
   else
    System.out.print(num1 + " + ");

   int sum = num1 + num2;
   num1 = num2;
   num2 = sum;
   i++;
  }
 }
}

The above program takes input n from the user. num1 and num2 will be assiged to default values i.e 0 and 1. The next number will be sum of num1 and num2. This will be third number. Like this, for loop contines for 10 times if n value is 10 by displaying the sum of previous two terms stored in variable num2.

Output:


The above program produces the output.

Enter value of n:10
First 10 Numbers in the Fibonacci series: 0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34

Example 2: Display Fibonacci series using for while


Example program to print the fibonacci numbers using for while.

package examples.java.w3schools.array.programs;

import java.util.Scanner;

public class FibonaciSeries {

 public static void main(String[] args) {

  int n, num1 = 0, num2 = 1;

  Scanner s = new Scanner(System.in);
  System.out.print("Enter value of n:");
  n = s.nextInt();

  System.out.print("First " + n + " Numbers in the Fibonacci series: ");
  for (int i = 1; i <= n; ++i) {
   if (i == n)
    System.out.print(num1);
   else
    System.out.print(num1 + " + ");

   int sum = num1 + num2;
   num1 = num2;
   num2 = sum;
  }
 }
}

Output:

Output will be same as above program using for loop.

Example 3: Display nth number in the Fibonacci series using for recursive approach


In this example, We will write a java program to find the nth number in the fibonacci series.

package examples.java.w3schools.array.programs;

import java.util.Scanner;

public class FibonaciSeries {

 public static void main(String[] args) {

  int n, num1 = 0, num2 = 1;

  Scanner s = new Scanner(System.in);
  System.out.print("Enter value of n:");
  n = s.nextInt();

  int nthNumber = fibonacci(n);
  System.out.println(n + "th number in the fibonacci series: " + nthNumber);
 }

 private static int fibonacci(int number) {
  if (number == 1 || number == 2) {
   return 1;
  }
  return fibonacci(number - 1) + fibonacci(number - 2);
 }

}

This program takes the number n and finds out the nth number fibonacci series. The above program is implemented using recursive approach.

Output:


Enter value of n:20
20th number in the fibonacci series: 6765

-------------------

Enter value of n:10
10th number in the fibonacci series: 55

-------------------

Enter value of n:30
30th number in the fibonacci series: 832040

-------------------

Enter value of n:40
40th number in the fibonacci series: 102334155

-------------------

Enter value of n:45
45th number in the fibonacci series: 1134903170




No comments:

Post a Comment

Please do not add any spam links in the comments section.