Sum of digits of a Number in C
C Program to Find Sum of Digits of a Number
In this C program, we will code Sum of Digits of a Number in C we will allow the user to enter any number and then we will divide the number into individual digits and add those individuals (sum=sum+digit) digits using While Loop.
Ex:- number is 231456
2 + 3 + 1 + 4 + 5 + 6 = 21
Sum of digit of a given number is 21
Sum of Digits in C Program
Working:-
For user input num
- Initialize sum = 0
- Extract the last digit of the number and add it to the sum (sum += num % 10)
- Reduce the number (num = num / 10
- Keep doing this until num becomes 0
Method 1
Uses the iterative way of calculation
C Code
// Write a Program to Find Sum of Digits of a given number #include<stdio.h> int main () { int num, sum = 0; num = 1234; printf("The number is = %d\n",num);
//loop to find sum of digits while(num!=0){ sum += num % 10; num = num / 10; } //output printf("Sum: %d\n",sum); return 0; } // Time complexity : O(N) // Space complexity : O(1)
Output
The number is = 1234
Sum: 10
Method 2
This method uses a recursive approach in C
Code
// Time complexity : O(N) // Space complexity : O(1) // Auxiliary Space Complexity : O(N) // Due to function call stack #include<stdio.h> int getSum(int num, int sum){ if(num == 0) return sum; sum += num % 10; return getSum(num/10, sum); } int main () { int num, sum = 0; num = 6789; printf("The number is: %d\n",num); printf("Sum: %d\n",getSum(num, sum)); return 0; } // Time complexity : O(N) // Space complexity : O(1) // Auxilary space complexity O(N)
Output
The number is = 6789 Sum: 30
Method 3
The above recursive method can also be reduced down to something like this below -. Note this method also uses a recursive approach in C
Code
// Time complexity : O(N) // Space complexity : O(1) // Auxiliary Space Complexity : O(N) // Due to function call stack #include<stdio.h> int getSum(int num) { if(num == 0){ return 0 ; } int digit = num % 10; return digit + getSum(num / 10) ; } int main() { int num = 2545; printf("Sum: %d", getSum(num)); return 0; }
Output
Sum: 16
Method 4
We can also take numbers as input in char array/string format.
The below program uses this approach. You must have knowledge of the Ascii Table.
Code
// Time Complexity : O(N) // Space Complexity : O(1) #include<stdio.h> #include<string.h> int getSum(char str[], int len) { int sum = 0; // Traverse through the whole string(char array) for (int i = 0; i < len; i++) { // Ascii value pf numbers start from 48 // subtracting 48 will give us value in int sum = sum + str[i] - 48; } return sum; } int main() { char num[] = "987654321"; int len = strlen(num); // can also use below // int len = sizeof(num)/sizeof(num[0]); printf("Sum: %d", getSum(num, len)); return 0; }
Output
Sum: 45
Method 5
Another method working with character input. You must have knowledge of the Ascii Table.
Code
#include<stdio.h> int main() { int index = 0, sum = 0, temp; char num[1000]; // taking character input for num printf("Input an integer: "); scanf("%s", num); // continue until we hit end of the char array while (num[index] != '\0') { // subtract ascii value of num from ascii value of '0' temp = num[index] - '0'; sum = sum + temp; index++; } printf("Sum of digits of %s is: %d ",num, sum); return 0; }
Output
Input an integer: 12345 Sum of digits of 12345 is: 15
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription
- Positive or Negative number: C | C++ | Java | Python
- Even or Odd number: C | C++ | Java | Python
- Sum of First N Natural numbers: C | C++ | Java | Python
- Sum of N natural numbers: C | C++ | Java | Python
- Sum of numbers in a given range: C | C++ | Java | Python
- Greatest of two numbers: C | C++ | Java | Python
- Greatest of the Three numbers: C | C++ | Java | Python
- Leap year or not: C | C++ | Java | Python
- Prime number: C | C++ | Java | Python
- Prime number within a given range: C | C++ | Java | Python
- Sum of digits of a number: C | C++ | Java | Python
- Reverse of a number : C | C++ | Java | Python
- Palindrome number: C | C++ | Java | Python
- Armstrong number : C | C++ | Java | Python
- Armstrong number in a given range : C | C++ | Java | Python
- Fibonacci Series upto nth term : C | C++ | Java | Python
- Find the Nth Term of the Fibonacci Series : C | C++ | Java | Python
- Factorial of a number : C | C++ | Java | Python
- Power of a number : C | C++ | Java | Python
- Factor of a number : C | C++ | Java | Python
- Strong number : C | C++ | Java | Python
- Perfect number : C | C++ | Java | Python
- Automorphic number : C | C++ | Java | Python
- Harshad number : C | C++ | Java | Python
- Abundant number : C| C++ | Java | Python
- Friendly pair : C | C++ | Java | Python
can you please expain why sum=sum + digit?