Qn: Write a C++ program to reverse the number.
-By Admin, Last Update On 31st May,2019 12:20 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

#include<iostream>
using namespace std;
int main(){
  int n=12345,sum=0,digit;
  while(n>0){
  digit=n%10;
  n=n/10;
  sum=(sum*10)+digit;
  }
  cout<<"Reversed number is: "<<sum;
  return 0;
}

Output:

Reversed number is: 54321

Pgcomments

Comments