# C Exercises: Find the sum of digits of a number

## C Recursion: Exercise-6 with Solution

Write a program in C to find the sum of digits of a number using recursion.

**Pictorial Presentation:**

**Sample Solution:**

**C Code:**

```
#include <stdio.h>
int DigitSum(int num);
int main()
{
int n1, sum;
printf("\n\n Recursion : Find the sum of digits of a number :\n");
printf("-----------------------------------------------------\n");
printf(" Input any number to find sum of digits: ");
scanf("%d", &n1);
sum = DigitSum(n1);//call the function for calculation
printf(" The Sum of digits of %d = %d\n\n", n1, sum);
return 0;
}
int DigitSum(int n1)
{
if(n1 == 0)
return 0;
return ((n1 % 10) + DigitSum(n1 / 10));//calling the function DigitSum itself
}
```

Sample Output:

Recursion : Find the sum of digits of a number : ----------------------------------------------------- Input any number to find sum of digits: 25 The Sum of digits of 25 = 7

**Explanation:**

int DigitSum(int n1) { if(n1 == 0) return 0; return ((n1 % 10) + DigitSum(n1 / 10));//calling the function DigitSum itself }

The function ‘DigitSum()’ takes an integer ‘n1’ as input and calculates the sum of its digits recursively.

The function first checks if the input n1 is equal to 0. If it is, then the function returns 0 as the sum of digits for an empty number is 0.

If the input n1 is not equal to 0, then the function calculates the remainder of the number divided by 10 (which gives the last digit of the number) and adds it to the sum of the remaining digits obtained by calling DigitSum() recursively with the number divided by 10 (which removes the last digit).

The function keeps calling itself recursively until the number becomes 0, at which point the sum of all the digits is returned.

**Time complexity and space complexity:**

The time complexity of the function is O(log n) where n is the given number.

The space complexity of the function is O(log n) due to the recursive calls.

**Flowchart: **

**C Programming Code Editor:**

**Have another way to solve this solution? Contribute your code (and comments) through Disqus.**

**Previous:** Write a program in C to count the digits of a given number using recursion.

**Next:** Write a program in C to find GCD of two numbers using recursion.

**What is the difficulty level of this exercise?**

Test your Programming skills with w3resource's quiz.

## C Programming: Tips of the Day

**__FILE__ macro shows full path **

#include <string.h> #define __FILENAME__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) For Windows use '\\' instead of '/'.

Ref : https://bit.ly/3iEWRoT

**Weekly Trends**- Python Interview Questions and Answers: Comprehensive Guide
- Scala Exercises, Practice, Solution
- Kotlin Exercises practice with solution
- MongoDB Exercises, Practice, Solution
- SQL Exercises, Practice, Solution - JOINS
- Java Basic Programming Exercises
- SQL Subqueries
- Adventureworks Database Exercises
- C# Sharp Basic Exercises
- SQL COUNT() with distinct
- JavaScript String Exercises
- JavaScript HTML Form Validation
- Java Collection Exercises
- SQL COUNT() function
- SQL Inner Join

We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook