</>

Technology

Java Programs

Difficulty

Beginner

Interview Question

Write a Java program to find the sum of digits of a number.

Answer

Sum of Digits of a Number

Java
public class SumOfDigits {
    public static void main(String[] args) {
        int num = 1234;
        int sum = 0;

        while (num != 0) {
            sum += num % 10;    // extract last digit and add to sum
            num  = num / 10;    // remove last digit
        }

        System.out.println("Sum of digits: " + sum);  // 10
    }
}

Output

CODE
Sum of digits: 10

Step-by-Step Trace

CODE
num=1234, sum=0

Iteration 1: sum = 0 + 1234%10 = 4,  num = 1234/10 = 123
Iteration 2: sum = 4 + 123%10  = 7,  num = 123/10  = 12
Iteration 3: sum = 7 + 12%10   = 9,  num = 12/10   = 1
Iteration 4: sum = 9 + 1%10    = 10, num = 1/10    = 0
Loop ends → sum = 10

One-Liner Using Streams

Java
int num = 1234;
int sum = String.valueOf(Math.abs(num))
              .chars()
              .map(c -> c - '0')      // char '4' → digit 4
              .sum();
System.out.println(sum);  // 10

Recursive Method

Java
public static int sumOfDigits(int num) {
    if (num == 0) return 0;
    return (num % 10) + sumOfDigits(num / 10);
}

System.out.println(sumOfDigits(9875));  // 9+8+7+5 = 29
System.out.println(sumOfDigits(0));     // 0
System.out.println(sumOfDigits(99));    // 18

Digital Root (Repeat Until Single Digit)

Java
public static int digitalRoot(int num) {
    while (num >= 10) {
        int sum = 0;
        while (num != 0) { sum += num % 10; num /= 10; }
        num = sum;
    }
    return num;
}

System.out.println(digitalRoot(9875));  // 9+8+7+5=29 → 2+9=11 → 1+1=2

Automation Testing Relevance

Java
// Validate credit card Luhn digit sum
String cardNumber = "4532015112830366";
int checkSum = cardNumber.chars()
    .map(c -> c - '0')
    .sum();
System.out.println("Digit sum: " + checkSum);

Follow AutomateQA