Reverse a Number in Java

Exercise:

Write a Java Program to reverse a number.

1.Reverse using a while loop

Click Here to View the Solution!
public class Reverse{
 
    public static void main(String[] args) {
 
        int num = 123456, reversed = 0;
 
        while(num != 0) {
            int digit = num % 10;
            reversed = reversed * 10 + digit;
            num /= 10;
        }
 
        System.out.println("Reversed Number: " + reversed);
    }
} 
Click Here to View the Output!
Reversed Number: 654321
Click Here to View the Explanation!
  • This program is used for reversing a number by using a while loop and then printing the number.
  • Initially, two integer variables num and reversed initialized as num = 123456 and reversed = 0.
  • In the beginning, the value of num is divided by 10 (num % 10) and its remainder is stored in the variable digit. The remainder of 1234 when divided by 10 is 6. So, now digit = 6.
  • In the body of the loop, the reverse of num is formed by multiplying the value of the variable reversed with 10 that will insert a new tenth place in the reversed number. Similarly, if you multiply tenth place with 10, it’ll give you a hundredth place. The above digit containing the remainder will be added into reversed. Considering this formula, the variable reversed will now hold 0 * 10 + 6= 6.
  • The value in num 123456 is then divided by 10 to remove the last digit. Hence num will now hold num = 12345.
  • In the second iteration, the variable digit will hold 6 which is the remainder and the variable reversed will hold 6 * 10 + 5 = 65. The value in the variable num will be again divided by 10 and now num = 1234.
  • In the third iteration, the variable digit will hold 4 which is the remainder and the variable reversed will hold 65 * 10 + 4 = 654. The value in the variable num will be again divided by 10 and now num = 123.
  • In the fourth iteration, the variable digit will hold 3 which is the remainder and the variable reversed will hold 654 * 10 + 3 = 6543. The value in the variable num will be again divided by 10 and now num = 12.
  • In the fifth iteration, the variable digit will hold 2 which is the remainder and the variable reversed will hold 6543 * 10 + 2 = 65432. The value in the variable num will be again divided by 10 and now num = 1.
  • In the sixth iteration, the variable digit will hold 1 which is the remainder and the variable reversed will hold 65432 * 10 + 1 = 654321. The value in the variable num will be again divided by 10 and now num = 0.
  • The condition in the while loop is checked in each iteration. And when it will become false (num = 0), the loop will end.
  • The variable reversed will hold the reverse of num (reversed = 654321) and will be printed.

2.Reverse using a for loop

Click Here to View the Solution!
public class Reverse {
 
    public static void main(String[] args) {
 
        int num = 12345, reversed = 0;
 
        for(;num != 0; num /= 10) {
            int digit = num % 10;
            reversed = reversed * 10 + digit;
        }
 
        System.out.println("Reversed Number: " + reversed);
    }
} 
Click Here to View the Output!
Reversed Number: 54321
Click Here to View the Explanation!
  • This program is used to reverse a number by using a for loop and displaying the reverse number.
  • Like the above program, it perform the number reversal process however, it uses a for loop instead of a while loop which holds no initialization, a condition (num != 0) and an  expression that will update the value of num (num/10).
  • In each iteration, a remainder will be calculated and stored in the variable digit. Which will be added into the variable reversed after multiplying it to 10.
  • Until the (num!=0) condition remains true, the iterations will continue.
  • In the end, the reversed number of num will be stored in the variable reversed and displayed on the screen.