Given a non-negative integer n, Find the nth fibonacci number using recursion.
The Fibonacci sequence is a sequence in which each number is the sum of the two preceding numbers. The sequence starts with 0 and 1. The Fibonacci numbers are defined as:
- f(0) = 0
- f(1) = 1
- f(n) = f(n - 1) + f(n - 2), for n > 1
Examples:
Input: n = 3
Output: 2
Explanation: The Fibonacci sequence is 0, 1, 1, 2, .... Hence, f(3) = 2.Input: n = 5
Output: 5
Explanation: The Fibonacci sequence is 0, 1, 1, 2, 3, 5, .... Hence, f(5) = 5.
Try It Yourself
Fibonacci using Recursion - O(2^n) Time and O(n) Auxiliary Space
The Fibonacci sequence can be calculated recursively using the relation f(n) = f(n - 1) + f(n - 2).
- If n is 0 or 1, return n as the base case.
- Otherwise, recursively calculate f(n - 1) and f(n - 2).
- Add the results of both recursive calls to get f(n).
Consider: n = 4
- The function first calculates f(3) and f(2).
- These calls are further divided into smaller subproblems until the base cases f(0) and f(1) are reached.
- The returned values are then added to obtain the final result.

#include <iostream>
using namespace std;
int nthFibonacci(int n){
// Base case
if (n <= 1){
return n;
}
// Recursive case
return nthFibonacci(n - 1) + nthFibonacci(n - 2);
}
int main(){
int n = 5;
int result = nthFibonacci(n);
cout << result << endl;
return 0;
}
#include <stdio.h>
int nthFibonacci(int n){
// Base case
if (n <= 1){
return n;
}
// Recursive case
return nthFibonacci(n - 1) + nthFibonacci(n - 2);
}
int main(){
int n = 5;
int result = nthFibonacci(n);
printf("%d\n", result);
return 0;
}
class GFG {
static int nthFibonacci(int n){
// Base case
if (n <= 1) {
return n;
}
// Recursive case
return nthFibonacci(n - 1) + nthFibonacci(n - 2);
}
public static void main(String[] args){
int n = 5;
int result = nthFibonacci(n);
System.out.println(result);
}
}
def nthFibonacci(n):
# Base case
if n <= 1:
return n
# Recursive case
return nthFibonacci(n - 1) + nthFibonacci(n - 2)
if __name__ == "__main__":
n = 5
result = nthFibonacci(n)
print(result)
using System;
class GFG {
static int nthFibonacci(int n){
// Base case
if (n <= 1) {
return n;
}
// Recursive case
return nthFibonacci(n - 1) + nthFibonacci(n - 2);
}
static void Main(){
int n = 5;
int result = nthFibonacci(n);
Console.WriteLine(result);
}
}
function nthFibonacci(n){
// Base case
if (n <= 1) {
return n;
}
// Recursive case
return nthFibonacci(n - 1) + nthFibonacci(n - 2);
}
//Driven Code
let n = 5;
let result = nthFibonacci(n);
console.log(result);
Output
5