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 $12345$ then the sum of the digits is $1 + 2 + 3 + 4 + 5$ i.e. $15$. 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 <iostream>

using namespace std;

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

    // take input of the number
    cout << "Enter the integer = ";
    cin >> 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
    cout << "Sum of digits = " << sum << endl;

    return 0;
}

Output


Case 1:

Enter the integer = 2432

Sum of digits = 11


Case 2:

Enter the integer = 2022

Sum of digits = 6





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 <iostream>

using namespace std;

// 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
    cout << "Enter the integer = ";
    cin >> num;

    // calculate the sum by calling function
    // display result 
    cout << "Sum of digits = " << digit_sum(num) << endl;

    return 0;
}

Output


Case 1:

Enter the integer = 98765

Sum of digits = 35


Case 2:

Enter the integer = 9999

Sum of digits = 36