# Sum of Digits Until Single Digit in Java

In this post, we will find the sum of digits until the single digit in Java. Previously we have developed a Java program to find the sum of digits of the number. But now we will find the sum of digits until the number becomes single digit,

Example:- number = 123456
=> The sum of digits of 123456 = 1+2+3+4+5+6 = 21
=> The number 21 is of two digits number so again we will find the sum of digits of the number,
=> The sum of digits of 21 = 2+1 = 3
Now, 3 is single-digit so it is the digital sum of the number 123456.

``````import java.util.Scanner;

public class DigitalSum {

// method to find sum of digits
// of a given number
public static int sumOfDigits(int number) {

// declare variables
int lastDigit = 0;
int sum = 0;

// loop to repeat the process
while(number != 0) {
// find last digit
lastDigit = number % 10;
// add last digit to sum
sum = sum + lastDigit;
// remove last digit
number = number / 10;
}

// sum value is the sum of digits
// of the given number
return sum;
}

// method to find digital sum
public static int digitalSum(int number) {
int result = number;
while(result / 10 != 0) {
result = sumOfDigits(result);
}
return result;
}

public static void main(String[] args) {

// declare variables
int number = 0;
int sumOfDigitsUntilSingle = 0;

// create Scanner class object
Scanner scan =  new Scanner(System.in);
System.out.print("Enter an integer number:: ");
number = scan.nextInt();

// find sum of digits of number
sumOfDigitsUntilSingle = digitalSum(number);

// display result
System.out.println("The sum of digits until" +
" single digit of the number "+number+
" = "+sumOfDigitsUntilSingle);

// close Scanner class object
scan.close();
}
}``````

The output of the different test-cases are:-

Enter an integer number:: 123456
The sum of digits until single digit of the number 123456 = 3

Enter an integer number:: 456
The sum of digits until single digit of the number 456 = 6

Enter an integer number:: 100
The sum of digits until single digit of the number 100 = 1

## Efficient way to find sum of digits until single digit in Java

The Sum of digits until single digit in Java also can be calculated by directly dividing the number by 9. If number is divisible by 9 then it’s Sum of digits until single digit is 9 else it is number % 9

``````import java.util.Scanner;

public class DigitalSum {

// method to find digital sum
public static int digitalSum(int number) {
if(number == 0) return 0;
else if(number % 9 == 0)
return 9;
else
return number%9;
}

// main method
public static void main(String[] args) {

// declare variables
int number = 0;
int sumOfDigitsUntilSingle = 0;

// create Scanner class object
Scanner scan =  new Scanner(System.in);

System.out.print("Enter an integer number:: ");
number = scan.nextInt();

// find sum of digits of number
sumOfDigitsUntilSingle = digitalSum(number);

// display result
System.out.println("The sum of digits until" +
" single digit of the number "+number+
" = "+sumOfDigitsUntilSingle);

// close Scanner class object
scan.close();
}
}``````

Output:-

Enter an integer number:: 123456
The sum of digits until single digit of the number 123456 = 3

The time complexity of this solution is O(1).

Using mathematical formula congruence, We can implement the another method in O(1)

``````public static int digitalSum(int number) {
return 1 + ( number - 1) % 9 ;
}``````

If you enjoyed this post, share it with your friends. Do you want to share more information about the topic discussed above or you find anything incorrect? Let us know in the comments. Thank you!

### 3 thoughts on “Sum of Digits Until Single Digit in Java”

1. Shreya Maheshwari

public static int digitalSum(int number) {
if(number == 0) return 0;
else if(number % 9 == 0)
return 9; //(9 should be returned instead of 0)
else
return number%9;
}

2. Using mathematical formula congruence,

We can implement the 2nd method O(1) in one linear in Java,

public static int digitalSum(int number) {
return 1+ ( number – 1) % 9 ;
}