Python Program to Count Number of Digits in a Number using Recursion

Given a number and the task is to count the number of digits present in a given number using recursion in python.

Recursion:

Recursion is the process by which a function calls itself directly or indirectly, and the associated function is known as a recursive function. Certain issues can be addressed fairly easily using a recursive approach. Towers of Hanoi (TOH), Inorder /Preorder/Postorder Tree Traversals, DFS of Graph, and other analogous issues are examples.

Examples:

Example1:

Input:

Given Number = 567812

Output:

The Number of digits present in the above given Number { 567812 } =  6

Example2:

Input:

Given Number = 602

Output:

The Number of digits present in the above given Number { 602 } =  3

Program to Count Number of Digits in a Number using Recursion in Python

Below are the ways to count the number of digits present in a given number using recursion in python:

Method #1: Using Recursion (Static Input)

Approach:

• Give the number as static input and store it in a variable.
• Take a variable say cnt_digits and initialize its value to 0.
• Pass the given number as an argument to the countnumbr_digits function.
• Create a recursive function to say countnumbr_digits which takes the given number as an argument and returns the count of the number of digits present in a given number.
• Make the cnt_digits a global declaration.
• Check if the given number is not equal to 0 using the if conditional statement.
• If the statement is true, then increment the value of cnt_digits by 1 and store it in the same variable.
• Pass the given number divided by 10 as an argument to the countnumbr_digits function(which removes the last digit of the number) {Recursive Logic}.
• Return cnt_digits.
• Print the count of the number of digits present in the above-given number.
• The Exit of the Program.

Below is the implementation:

# Create a recursive function to say countnumbr_digits which takes the given number as
# an argument and returns the count of the number of digits present in a given number.

def countnumbr_digits(gvn_numb):
# Make the cnt_digits a global declaration.
global cnt_digits
# Check if the given number is not equal to 0 using the if conditional statement.
if (gvn_numb != 0):
# If the statement is true, then increment the value of cnt_digits by 1 and store it
# inthe same variable.
cnt_digits += 1
# Pass the given number divided by 10 as an argument to the countnumbr_digits function
# (which removes the last digit of the number) {Recursive Logic}.
countnumbr_digits(gvn_numb // 10)
# Return cnt_digits.
return cnt_digits

# Give the number as static input and store it in a variable.
gvn_numb = 567812
# Take a variable say cnt_digits and initialize its value to 0.
# Pass the given number as an argument to the countnumbr_digits function.
cnt_digits = 0
# Print the count of the number of digits present in the above-given number.
print("The Number of digits present in the above given Number {", gvn_numb, "} = ", countnumbr_digits(
gvn_numb))


Output:

The Number of digits present in the above given Number { 567812 } =  6

Method #2: Using Recursion (User Input)

Approach:

• Give the number as user input using the int(input()) function and store it in a variable.
• Take a variable say cnt_digits and initialize its value to 0.
• Pass the given number as an argument to the countnumbr_digits function.
• Create a recursive function to say countnumbr_digits which takes the given number as an argument and returns the count of the number of digits present in a given number.
• Make the cnt_digits a global declaration.
• Check if the given number is not equal to 0 using the if conditional statement.
• If the statement is true, then increment the value of cnt_digits by 1 and store it in the same variable.
• Pass the given number divided by 10 as an argument to the countnumbr_digits function(which removes the last digit of the number) {Recursive Logic}.
• Return cnt_digits.
• Print the count of the number of digits present in the above-given number.
• The Exit of the Program.

Below is the implementation:

# Create a recursive function to say countnumbr_digits which takes the given number as
# an argument and returns the count of the number of digits present in a given number.

def countnumbr_digits(gvn_numb):
# Make the cnt_digits a global declaration.
global cnt_digits
# Check if the given number is not equal to 0 using the if conditional statement.
if (gvn_numb != 0):
# If the statement is true, then increment the value of cnt_digits by 1 and store it
# inthe same variable.
cnt_digits += 1
# Pass the given number divided by 10 as an argument to the countnumbr_digits function
# (which removes the last digit of the number) {Recursive Logic}.
countnumbr_digits(gvn_numb // 10)
# Return cnt_digits.
return cnt_digits

# Give the number as user input using the int(input()) function and
# store it in a variable.
gvn_numb = int(input("Enter some random number = "))
# Take a variable say cnt_digits and initialize its value to 0.
# Pass the given number as an argument to the countnumbr_digits function.
cnt_digits = 0
# Print the count of the number of digits present in the above-given number.
print("The Number of digits present in the above given Number {", gvn_numb, "} = ", countnumbr_digits(
gvn_numb))


Output:

Enter some random number = 5341
The Number of digits present in the above given Number { 5341 } = 4