# Python Program for Fibonacci Series Using Recursion

Reading Time: 4 minutes

## Introduction:

The given Python program implements the Fibonacci series using recursion. The Fibonacci series is a sequence of numbers where each number is the sum of the two preceding ones. It starts with 0 and 1, and each subsequent number is the sum of the two preceding numbers. The program also includes a function to print the Fibonacci series up to a given number of terms.

### Algorithm:

1. Fibonacci(n) function:
• Check if the input n is less than or equal to 0. If true, return the string “Invalid input. The input should be a positive integer.” This step handles invalid inputs.
• Check if n is equal to 1. If true, return 0. This is the first number in the Fibonacci series.
• Check if n is equal to 2. If true, return 1. This is the second number in the Fibonacci series.
• If the above conditions are not met, recursively call the Fibonacci ( ) function with n – 1 and n – 2, and return the sum of the two recursive calls. This step calculates the Fibonacci number for the given input n.
2. Print _ Fibonacci _series(n) function:
• Check if the input n is less than or equal to 0. If true, print “Invalid input. The input should be a positive integer.” to handle invalid inputs.
• If n is greater than 0, print “Fibonacci Series:” to indicate the output will be the Fibonacci series.
• Iterate from 1 to n (inclusive) using a for loop:
• Call the Fibonacci ( ) function with the current loop index as the argument to calculate the Fibonacci number for each term.
• Print the calculated Fibonacci number using print ( ) with the end parameter set to ” ” to display the numbers on the same line.

### Explanation:

The program consists of two functions, Fibonacci(n) and print _ Fibonacci _series(n). The Fibonacci (n) function calculates the nth Fibonacci number using recursion, and the print _ Fibonacci _series (n) function prints the Fibonacci series up to the nth term.

When the program is executed, it first defines the Fibonacci () and print _ Fibonacci _series ( ) functions. Then, it tests the program by calling print _ Fibonacci _series() with n _terms = 10. This will generate and print the first 10 terms of the Fibonacci series.

The Fibonacci series for n_terms = 10 is as follows:

### Python Code:

```    ```
def fibonacci(n):
if n <= 0:
return "Invalid input. The input should be a positive integer."
elif n == 1:
return 0
elif n == 2:
return 1
else:
return fibonacci(n - 1) + fibonacci(n - 2)
def print_fibonacci_series(n):
if n <= 0:
print("Invalid input. The input should be a positive integer.")
else:
print("Fibonacci Series:")
for i in range(1, n + 1):
print(fibonacci(i), end=" ")
# Test the program
n_terms = 10  # Change this value to generate more or fewer terms in the series
print_fibonacci_series(n_terms)

```
```

### Output:

```    ```
Fibonacci series : 0 1 1 2 3 5 8 13 21 34
```
```

You can change the value of n_terms to generate a longer or shorter Fibonacci series. Keep in mind that using recursion for larger values of n_terms may lead to slower execution and consume more memory, as recursion has exponential time complexity. For more efficient Fibonacci generation, consider using an iterative approach or memorization techniques.