Java Program to find fibonacci series of a number using recursion

Program

import java.util.Scanner;
public class FibonacciRecursion {
    int generateFibonacci(int range) {
        if (range == 0)
            return 0;
        if (range == 1)
            return 1;
        return generateFibonacci(range - 1) + generateFibonacci(range - 2);
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter the number to generate fibonacci series");
        int range = sc.nextInt();
        int count = 0;
        System.out.println("Fibonacci Series:");
        FibonacciRecursion fib = new FibonacciRecursion();
        for (int i = 1; i & lt; = range; i++) {
            System.out.print(fib.generateFibonacci(count) + "\t");
            count++;
        }
        System.out.println();
    }
}

Purpose

This Java program generates the Fibonacci series using recursion. Recursion is a programming technique where a method calls itself to solve smaller subproblems.

1. Recursive Method

int generateFibonacci(int range) {
    if (range == 0)
        return 0;
    if (range == 1)
        return 1;
    return generateFibonacci(range - 1) + generateFibonacci(range - 2);
}
  • Purpose: Computes the Fibonacci number at a given position (range) using recursion.
  • How It Works:
    1. Base Cases:
      • If range == 0, return 0 (first Fibonacci number).
      • If range == 1, return 1 (second Fibonacci number).
    2. Recursive Case:
      • Adds the two preceding Fibonacci numbers: [ \text{generateFibonacci(range)} = \text{generateFibonacci(range - 1)} + \text{generateFibonacci(range - 2)} ]
    • This repeats until the base cases are reached.

2. Main Method

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter the number to generate fibonacci series");
    int range = sc.nextInt();
  • Takes Input:
    • Prompts the user to enter the number of terms (range) in the Fibonacci series.
    • Reads the input using Scanner.

3. Generate and Print the Fibonacci Series

int count = 0;
System.out.println("Fibonacci Series:");
FibonacciRecursion fib = new FibonacciRecursion();
for (int i = 1; i <= range; i++) {
    System.out.print(fib.generateFibonacci(count) + "\t");
    count++;
}
System.out.println();
  • Steps:
    1. Initialize count:
      • Starts at 0 and is incremented with each iteration to represent the Fibonacci position.
    2. Create an Object:
      • An instance of FibonacciRecursion is created to call the generateFibonacci() method.
    3. Iterate:
      • A for loop runs range times to generate and print each Fibonacci number.
    4. Call Recursive Method:
      • The recursive method generateFibonacci(count) computes the Fibonacci number at position count.

Execution Steps

  1. User enters range = 5.
  2. The loop runs 5 times (count from 0 to 4).
  3. Recursive method calls:
    • generateFibonacci(0) returns 0.
    • generateFibonacci(1) returns 1.
    • generateFibonacci(2) calls:
      • generateFibonacci(1) returns 1.
      • generateFibonacci(0) returns 0.
      • Sum: 1 + 0 = 1.
    • generateFibonacci(3) calls:
      • generateFibonacci(2) returns 1.
      • generateFibonacci(1) returns 1.
      • Sum: 1 + 1 = 2.
    • generateFibonacci(4) calls:
      • generateFibonacci(3) returns 2.
      • generateFibonacci(2) returns 1.
      • Sum: 2 + 1 = 3.

Output

Enter the number to generate fibonacci series
8
Fibonacci Series:
0	1	1	2	3	5	8	13