A number n is given, the task is to find sum of its digits.

##### Example 1: Find Sum of the digits of 1000

**Input:** 1000

**Output:** 1

##### Example 2: Find Sum of the digits of 0

**Input:** 0

**Output:** 0

##### Example 1: Find Sum of the digits of 1234

**Input:** 1234

**Output:** 10

##### Example 1: Find Sum of the digits of 5

**Input:** 5

**Output:** 5

## Solutions

### Method 1: Recursion

If we take modulo(%) of a number by 10 we get the last digit of that number i.e. 123 % 10 = 3; similarly if we divide a number by 10 and store the value in int we get the number except last digit i.e. int r = 123 / 10 = 12.

Sum of digit "0" is "0", this will make the base condition, we will keep separating last digit from the number until the number is completely traversed. In each recursive call add last digit with sum of remaining digits.

package com.cb.recursion; /* * Recursion * */ public class R16_SumOfDigits { public static int sum(int digits) { // all digits are exhausted or 0 if (digits <= 0) return 0; // add current digit with sum(remainingDigits) return digits % 10 + sum(digits / 10); } public static void main(String[] args) { System.out.println(sum(1000)); System.out.println(sum(1234)); System.out.println(sum(0)); System.out.println(sum(1)); } }

1 10 0 1

##### Complexity

The time complexity of this solution is **O(n)** and space complexity is **O(1)**.