C program to sum the digits of a number in single statement

  • Write a program in C to find sum of digits of a number in single statement.
  • How to find the sum of digits of a number in one statement using recursion.

Algorithm to find sum of digits of a number
  • Get least significant digit of number (number%10) and add it to the sum variable.
  • Remove least significant digit form number (number = number/10).
  • Repeat above two steps, till number is not equal to zero.

C program to find sum of digits of a number using for loop

# include<stdio.h>

int main() {
    int n, sum;
 
    printf("Enter a number\n");
    scanf("%d", &n);
   
    for(sum=0; n > 0; sum += n%10, n/=10);
    
    printf("Sum of digits : %d", sum);
    
    return 0;
}
Output
Enter a number
1234
Sum of digits : 10

C program to find sum of digits of a number using recursion

#include<stdio.h>

int sumOfDigits(int n) {
    return n == 0 ? 0 : n%10 + sumOfDigits(n/10) ;
}
 
int main() {
    int n, sum;
 
    printf("Enter a number\n");
    scanf("%d", &n);
    printf("Sum of Digits : %d", sumOfDigits(n));
    
    return 0;
}
Output
Enter a number
12345
Sum of Digits : 15