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.
Page Contents:
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.
3.
4.
5.
6.
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
/************************************ 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
/************************************ 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