Reverse The Number
Problem:
Write a C++ program which ask for a number and reverse its digits.
Ex. Number = 1234 , the answer will be 4321
In order to reverse the number, we have to get the every digit starting from the rightmost or the last digit. In the above example it is number 4, then next is 3, then 2 until 1.
Steps to extract each digit and construct the reversed value of the number:
1) Extract the last digit through the use of modulus operator (%) to get the remainder when the a number is divided by 10.
2) Add the extracted digit to a reversed number variable (ex. reversedNum) which will be constructed. The variable should be initialized to 0 and must be multiplied with 10 before the extracted digit is added.
3) After the last digit is extracted, divide the number with 10 to eliminate the extracted digit and start again to Step 1. The cycle continues until there is number is already 0.
The following program shows how to reverse the digits of a number.
/*
Reverse the number
*/
#include <iostream>
using namespace std;
int main(void)
{
long number, remainder, reverseNumber = 0;
char hang;
cout<< "Enter the number: ";
cin>>number;
while(number)
{
//extract the last digit from the number
remainder = number % 10;
//build the reverseNumber digit by digit
reverseNumber = (reverseNumber * 10) + remainder;
//exclude the last digit from the number
//ready for the next evaluation
number = number / 10;
}
cout<< "Reversed number = " << reverseNumber <<endl;
//to let console stay
cin>>hang;
return 0;
}
Output of the program:
//Sample 1
Enter the number: 1235
Reversed number = 5321
//Sample 2
Enter the number: 1023
Reversed number = 3201
//Sample 3
Enter the number: 5007
Reversed number = 7005
//*Sample 4
Enter the number: 012
Reversed number = 21
//*Sample 5
Enter the number: 210
Reversed number = 12
*Note that for inputs having 0 in the beginning and in the end, 0 will not be include in the output, See below:
Input = 012 Output = 21 ( 012 is considered as 12 because the 0 is not significant)
Input = 210 Output = 12 ( instead of 012, 0 is not significant in the answer)