Here we’ll see how to write a C program to find the summation of all digits in a number.
#include <stdio.h> int sum_digits(int n) { int sum = 0; while(n) { sum += (n % 10); n /= 10; } return sum; } int main() { int n = 0; printf("Enter an integer: "); scanf("%d", &n); printf("Sum of all digits of %d is %d.\n", n, sum_digits(n)); return 0; }
The sum_digits() function returns summation of all digits on the input number n. It has a loop. In every iteration it gets the last digit by doing modulo operation by 10 (n%10) and adds that digit to sum. It removes the last digit by doing the div operation by 10. (n/10). The loop terminates when n becomes 0.
Here is the output of the program.
Enter an integer: 43652 Sum of all digits of 43652 is 20.
Recursive Version
Here is the recursive version of the same sum_digits() function.
int sum_digits(int n) { int rem = n%10; if(rem == 0) return n; return rem + sum_digits(n/10); }
The post C Program to Find the Sum of all Digits of a Number appeared first on QnA Plus.