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);
