C program to calculate sum of digits using recursion

Write a recursive function in C programming to calculate sum of digits of any number. How to calculate sum of digits of any number using recursion in C programming. Find sum of digits of a number using recursion through C program.

Example:
Input number: 1234
Output sum of digits: 10

Required knowledge

Basic C programming, Function, Recursion

Logic to calculate sum of digits using recursion

We have already seen in previous posts how simply we can find sum of digits using loops. Finding sum of digits includes three basic steps:
  1. Find last digit of the number using modular division by 10.
  2. Add the last digit found above to sum variable.
  3. Remove the last digit of the number by dividing it by 10.
Repeat the above three steps till the number becomes 0. Below are the conditions used to convert the above iterative approach of finding sum of digits into recursive approach:
sum(0) = 0 {Base condition}
sum(num) = num%10 + sum(num/10)

Program to calculate sum of digits using recursion

/**
 * C program to calculate sum of digits using recursion
 */
 
#include <stdio.h>


/* Function declaration */
int sumOfDigits(int num);



int main()
{
    int num, sum;
    
    printf("Enter any number to find sum of digits: ");
    scanf("%d", &num);
    
    sum = sumOfDigits(num);
    
    printf("Sum of digits of %d = %d\n", num, sum);
    
    return 0;
}



/**
 * Recursive function to find sum of digits of a number
 */
int sumOfDigits(int num)
{
    //Base condition
    if(num == 0)
        return 0;
        
    return ((num % 10) + sumOfDigits(num / 10));
}


Output
Enter any number to find sum of digits: 1234
Sum of digits of 1234 = 10

Happy coding ;)


Any doubt or suggestion write here. I will try my best to help. Before posting your code you must escape it to view. To format your source code and use format highlighting, post your source code inside
< code >< pre > -- Your source code -- < /pre >< /code > (Remove spaces from pre and code tags).

No comments:

Post a Comment