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:
- Base Cases:
- If
range == 0
, return0
(first Fibonacci number). - If
range == 1
, return1
(second Fibonacci number).
- If
- 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.
- Base Cases:
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
.
- Prompts the user to enter the number of terms (
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:
- Initialize
count
:- Starts at 0 and is incremented with each iteration to represent the Fibonacci position.
- Create an Object:
- An instance of
FibonacciRecursion
is created to call thegenerateFibonacci()
method.
- An instance of
- Iterate:
- A
for
loop runsrange
times to generate and print each Fibonacci number.
- A
- Call Recursive Method:
- The recursive method
generateFibonacci(count)
computes the Fibonacci number at positioncount
.
- The recursive method
- Initialize
Execution Steps
- User enters
range = 5
. - The loop runs 5 times (
count
from 0 to 4). - Recursive method calls:
generateFibonacci(0)
returns0
.generateFibonacci(1)
returns1
.generateFibonacci(2)
calls:generateFibonacci(1)
returns1
.generateFibonacci(0)
returns0
.- Sum:
1 + 0 = 1
.
generateFibonacci(3)
calls:generateFibonacci(2)
returns1
.generateFibonacci(1)
returns1
.- Sum:
1 + 1 = 2
.
generateFibonacci(4)
calls:generateFibonacci(3)
returns2
.generateFibonacci(2)
returns1
.- Sum:
2 + 1 = 3
.
Output
Enter the number to generate fibonacci series
8
Fibonacci Series:
0 1 1 2 3 5 8 13