Python Program to Check Palindrome Number Using Recursion

1. Introduction

Recursion is a powerful technique in programming where a function calls itself to solve a problem. In the context of palindromes, recursion can simplify the process of checking if a number is the same forward and backward.

Definition

A palindrome is a sequence of characters that reads the same forward and backward. A recursive approach to determine if a number is a palindrome involves comparing the first and last digits and, if they match, recursively checking the remaining middle part.

2. Program Steps

1. Define the number to be checked for palindromicity.

2. Create a recursive function to check if the number is a palindrome.

3. Call the recursive function and pass the number to it.

4. Print the result of the recursive check.

3. Code Program

# Step 1: Define the number
number = 12321

# Recursive function to check for a palindrome
def is_palindrome_recursive(n, original_number=None):
    # Initialize original_number during the first call
    if original_number is None:
        original_number = n

    # Step 2: Base case, if the number has one or no digit, it's a palindrome
    if n < 10:
        return n == (original_number % 10)

    # Remove the last digit and compare it with the first
    if n % 10 != original_number // (10 ** (len(str(n)) - 1)):
        return False

    # Remove the first and last digit and make a recursive call
    n = (n % (10 ** (len(str(n)) - 1))) // 10
    return is_palindrome_recursive(n, original_number // 10)

# Step 3: Call the recursive function
is_palindrome = is_palindrome_recursive(number)

# Step 4: Print the result
print(f"The number {number} is a palindrome: {is_palindrome}")

Output:

The number 12321 is a palindrome: True

Explanation:

1. number is assigned the value 12321.

2. is_palindrome_recursive is defined to check if n is a palindrome. It takes n and an optional original_number parameter, which remains unchanged in recursive calls.

3. If n is less than 10, it means we're down to the last digit, and we compare it with the last digit of original_number.

4. If the current last digit of n doesn't match the current first digit of original_number, it returns False.

5. Otherwise, it strips the first and last digit from n and original_number, respectively, and recurses with the smaller numbers.

6. The final print statement shows the result of the recursive palindrome check.

Comments