C Program to Calculate the Sum of Digits of an Integer

sum of digits

C programs to calculate the sum of the digits of 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.






1. Algorithm to calculate sum of digits of 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 of 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 of an integer


Time Complexity: O(log(n))

Where n is the input number.





4. Program & output to calculate sum of digits of an integer




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

Code has been copied
/************************************
        alphabetacoder.com
 C program to calculate the sum of 
 digits of 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 of an integer using recursion

Code has been copied
/************************************
        alphabetacoder.com
 C program to calculate the sum of 
 digits of 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