# How can we sum the digits of a given number in single statement?

Given a number, find sum of its digits.

Example :

```Input : n = 687
Output : 21

Input : n = 12
Output : 3
```

## Recommended: Please solve it on “PRACTICE ” first, before moving on to the solution.

Below are the solutions to get sum of the digits.

1. Iterative:
The function has three lines instead of one line but it calculates sum in line. It can be made one line function if we pass pointer to sum.

```# include<stdio.h>
/* Function to get sum of digits */
int getSum(int n)
{
int sum;
/*Single line that calculates sum*/
for(sum=0; n > 0; sum+=n%10,n/=10);
return sum;
}

int main()
{
int n = 687;
printf(" %d ", getSum(n));
return 0;
}
```

2. Recursive
Thanks to ayesha for providing the below recursive solution.

```int sumDigits(int no)
{
return no == 0 ? 0 : no%10 + sumDigits(no/10) ;
}

int main(void)
{
printf("%d", sumDigits(1352));
getchar();
return 0;
}
```

Please write comments if you find the above codes/algorithms incorrect, or find better ways to solve the same problem.

# GATE CS Corner    Company Wise Coding Practice

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.
1.5 Average Difficulty : 1.5/5.0
Based on 37 vote(s)