Qn: Write a simple java program to reverse a number.
-By Admin, Last Update On 31st May,2019 12:22 am

உதாரணத்திற்க்கு n=12345 என்று எடுத்துகொள்வோம். இதனை reverse செயும்போது கடைசியில் உள்ள 5-ஆனது முதலில் வரவேண்டும் அதற்க்கு 5 என்ற degit-ஐ தனி பிரிக்கவேண்டும். modulo(%) operator பயன்படுத்தும்போது. அதாவது n%10 என்று பயன்படுத்தும்போது அந்த number-ல் உள்ள கடைசி digit 5 கிடைத்துவிடும். அடுத்த digit 4-ஐ எடுக்க வேண்டுமெனில் n=1234 என்று மாறவேண்டும். இப்படி இருந்தால் தான் 4-ஐ தனியாக எடுக்க எளிதாக இருக்கும். அதற்காக தான் n=n/10 என்று பயன்படுதும்ப்போது n/10-ன் value 1234 திரும்பவும் n-லே save செய்துகொள்ளும். இப்பொழுது n-ன் value 1234-ஆ மாறிவிட்டது.

அடுத்த digit 3-ஐ இதே முறையில் செய்யவேண்டும். இந்த செய்முரையானது தொடர்ந்து சுழற்சியாக நடைபெற்று கொண்டிருக்கிறது. ஆகவே இந்த செய்முறையை while loop-க்குள் செய்தால் அதுவே திரும்ப திரும்ப செய்துகொள்ளும். இதில் n-ன் value குறைந்துகொண்டே வந்து 0 ஆக மாறும்போது loop நின்றுவிடும்.

இவ்வாறு பிரித்து எடுத்த ஒவொரு digits-ஐயும் sum=(sum*10)+digit. இவ்வாறு சேர்த்து கொண்டே வரவேண்டும். அதேபோல் 10-ஆல் multiply செய்வதற்கு காரணம் ஒவொரு digit-ம் பக்கத்தில் சேரும்போது அதன் value மாறிக்கொண்டே இருக்கும். அதாவது 5, 50-ஆக மாறும் அதன் பின் 500-ஆக மாறும். இது தொடர்ந்துகொண்டே இருக்கும்.

இறுதியில் loop ஆனது முடியும் போது sum என்ற variable-ல் உள்ள value reverse செய்யப்பட்ட value ஆக இருக்கும்.

Program

import java.util.Scanner;
public class ReverseNumber{
    public static void main(String[] args){
    	Scanner sn = new Scanner(System . in);
        System . out . print("Enter the number: ");
        int n = sn.nextInt();
        
        int sum=0,digit;
        while(n>0){
        digit=n%10;
        n=n/10;
        sum=(sum*10)+digit;
        }
       System.out.println("Reversed number is: "+sum);
	}

}
Output:
Enter the number: 12345
Reversed number is: 54321

Pgcomments

Comments