Program 1: Reverse a number using while Loop
In this program, we are taking the input number from the user using Scanner class and then we are reversing the number using while loop.
The logic we are using here is: Inside the while loop we are dividing the given number by 10 using % operator and then storing the remainder in the reversenum variable after multiplying the reversenum by 10. we are repeating this step again and again until the given number become zero.
import java.util.Scanner;
class ReverseNumberWhile
{
public static void main(String args[])
{
int num=0;
int reversenum =0;
System.out.println("Input your number and press enter: ");
//This statement will capture the user input
Scanner in = new Scanner(System.in);
//Captured input would be stored in number num
num = in.nextInt();
//While Loop: Logic to find out the reverse number
while( num != 0 )
{
reversenum = reversenum * 10;
reversenum = reversenum + num%10;
num = num/10;
}
System.out.println("Reverse of input number is: "+reversenum);
}
}
Output:
Input your number and press enter:
145689
Reverse of input number is: 986541
Program 2: Reverse a number using for Loop
This program is fairly similar to the first program, here we are using for loop instead of while loop.
As you can see, in this program we have not used the initialization and increment/decrement section of for loop because we have already initialized the variables outside the loop and we are decreasing the value of num inside for loop by diving it by 10.
The logic is same as first program.
import java.util.Scanner;
class ForLoopReverseDemo
{
public static void main(String args[])
{
int num=0;
int reversenum =0;
System.out.println("Input your number and press enter: ");
//This statement will capture the user input
Scanner in = new Scanner(System.in);
//Captured input would be stored in number num
num = in.nextInt();
/* for loop: No initialization part as num is already
* initialized and no increment/decrement part as logic
* num = num/10 already decrements the value of num
*/
for( ;num != 0; )
{
reversenum = reversenum * 10;
reversenum = reversenum + num%10;
num = num/10;
}
System.out.println("Reverse of specified number is: "+reversenum);
}
}
Output:
Input your number and press enter:
56789111
Reverse of specified number is: 11198765
Program 3: Reverse a number using recursion
Here we are using recursion to reverse the number. We have defined a method reverseMethod() and we are passing the input number to this method.
This method then divides the number by 10, displays the remainder and then calls itself by passing the quotient as parameter. This process goes on and on until the number is in single digit and then it displays the last digit (which is the first digit of the number) and ends the recursion.
import java.util.Scanner;
class RecursionReverseDemo
{
//A method for reverse
public static void reverseMethod(int number) {
if (number < 10) {
System.out.println(number);
return;
}
else {
System.out.print(number % 10);
//Method is calling itself: recursion
reverseMethod(number/10);
}
}
public static void main(String args[])
{
int num=0;
System.out.println("Input your number and press enter: ");
Scanner in = new Scanner(System.in);
num = in.nextInt();
System.out.print("Reverse of the input number is:");
reverseMethod(num);
System.out.println();
}
}
Output:
Input your number and press enter:
5678901
Reverse of the input number is:1098765
Example: Reverse an already initialized number
In all the above programs we are prompting user for the input number, however if do not want the user interaction part and want to reverse an initialized number then this is how you can do it.
class ReverseNumberDemo
{
public static void main(String args[])
{
int num=123456789;
int reversenum =0;
while( num != 0 )
{
reversenum = reversenum * 10;
reversenum = reversenum + num%10;
num = num/10;
}
System.out.println("Reverse of specified number is: "+reversenum);
}
}
Output:
Reverse of specified number is: 987654321
Leave a Reply