C programs to calculate the sum of the digits in an integer have been shown here. For example if a number is $1234$ then the sum of the digits is $1 + 2 + 3 + 4$ i.e. $10$. The following section covers the iterative approach to find the sum of digits. The algorithm, time complexity and pseudocode of the program have been shown below.

#### Page Contents:

1. Algorithm

2. Pseudocode

3. Time Complexity

4. Program & Output

## 1. Algorithm to calculate sum of digits in an integer

1. Take a number x as input.

2. Initialize a variable to 0 say sum = 0.

3. Perform r = x % 10 and add r to sum i.e sum = sum + r

4. Perform x = x / 10

5. If x = 0 stop the process and display sum as output else go to step 3.

## 2. Pseudocode to calculate sum of digits in an integer

Input : A number $n$

Output : The sum of digits of $n$

1. Procedure sumOfDigits($n$):

2. $sum \leftarrow 0$

3. Repeat until $n \neq 0$

4. $sum \leftarrow sum + (n \mod 10)$

5. $n \leftarrow n / 10$

6. Return $sum$

7. End Procedure

## 3. Time complexity to calculate sum of digits in an integer

Time Complexity: O(log(n))

Where n is the input number.

## 4.1. C Program & output to calculate sum of digits in an integer using iteration

Code has been copied
/************************************
alphabetacoder.com
C program to calculate the sum of
digits in an integer using iteration
**************************************/

#include <stdio.h>

int main() {
// declare variables
int num, sum = 0, r;

// take input of the number
printf("Enter the integer = ");
scanf("%d", & num);

//find sum of the digits
while (num != 0) {
// extract the unit digit
r = num % 10;
// do sum
sum = sum + r;
//divide the number by 10
num = num / 10;
}

// display result
printf("Sum of digits = %d", sum);

return 0;
}


Output

#### Case 1:

Enter the integer = 5512

Sum of digits = 13

#### Case 2:

Enter the integer = 12345

Sum of digits = 15

## 4.2. C Program & output to calculate sum of digits in an integer using recursion

Code has been copied
/************************************
alphabetacoder.com
C program to calculate the sum of
digits in an integer using recursion
**************************************/

#include <stdio.h>

// recursive function to calculate sum of digits
int digit_sum(int num) {
if (num == 0)
return 0;
else
return (num % 10) + digit_sum(num / 10);
}

int main() {
// declare variables
int num;

// take input of the number
printf("Enter the integer = ");
scanf("%d", & num);

// calculate the sum by calling function
// display result
printf("Sum of digits = %d", digit_sum(num));

return 0;
}


Output

#### Case 1:

Enter the integer = 421

Sum of digits = 7

#### Case 2:

Enter the integer = 9999

Sum of digits = 36