Java Program to Find Sum of Digits of a Number

This article covers a program in Java that find and prints the sum of all digits of a number entered by user. For example, if entered number is 13049, then the output will be 17. 17 is the sum of all digits of given number, i.e., 1+3+0+4+9.

Find Sum of Digits in Java using while Loop

The question is, write a Java program to find the sum of digits of a given number using while loop. The program given below is its answer:

import java.util.Scanner;

public class fresherearth
{
   public static void main(String[] args)
   {
      int num, digit, sum=0;
      Scanner s = new Scanner(System.in);
      
      System.out.print("Enter a Number: ");
      num = s.nextInt();
      
      while(num!=0)
      {
         digit = num%10;
         sum = sum + digit;
         num = num/10;
      }
      
      System.out.println("\nSum of Digits = " +sum);
   }
}

The snapshot given below shows the sample run produced by above Java program, with user input 10349 as number to find and print the sum of its all digits:

java find sum of digits of number

That is, 1+0+3+4+9 is equal to 17. The same program can also be created in this way:

import java.util.Scanner;

public class fresherearth
{
   public static void main(String[] args)
   {
      int num, digit, sum=0;
      Scanner s = new Scanner(System.in);
      
      System.out.print("Enter a Number: ");
      num = s.nextInt();
      
      System.out.print("\n");
      while(num!=0)
      {
         digit = num%10;
         sum = sum + digit;
         num = num/10;
         if(num!=0)
            System.out.print(digit + "+");
         else
            System.out.print(digit+ " = " + sum);
      }
   }
}

Here is its sample run with user input, 1309438:

find sum of digits of number java

Also the while block can be written in this way too:

while(true)
{
   digit = num%10;
   sum = sum + digit;
   num = num/10;
   if(num!=0)
      System.out.print(digit + "+");
   else
   {
      System.out.print(digit+ " = " + sum);
      break;
   }
}

Find Sum of Digits in Java using for Loop

Let's see how the same program looks like, when created using for loop.

import java.util.Scanner;

public class fresherearth
{
   public static void main(String[] args)
   {
      int num, digit, sum;
      Scanner s = new Scanner(System.in);
      
      System.out.print("Enter a Number: ");
      num = s.nextInt();
      
      for(sum=0; num!=0; num = num/10)
      {
         digit = num%10;
         sum = sum + digit;
      }
      
      System.out.println("\nSum of Digits = " +sum);
   }
}

Find Sum of Digits using Function

This program is created using function. In this program, I've created a function named sumOfDigits() that takes a single argument and returns the sum of digits of that argument.

import java.util.Scanner;

public class fresherearth
{
   public static void main(String[] args)
   {
      int num, digit, sum=0;
      Scanner s = new Scanner(System.in);
      
      System.out.print("Enter a Number: ");
      num = s.nextInt();
      
      System.out.println("\nSum of Digits = " +sumOfDigits(num));
   }
   public static int sumOfDigits(int n)
   {
      int sum = 0;
      while(n!=0)
      {
         sum = sum + (n%10);
         n /= 10;
      }
      return sum;
   }
}

Same Program in Other Languages

Java Online Test


« Previous Program Next Program »