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

Leave a Comment