Reverse The Number
Problem:
Write a C++ program which ask for a number and reverse its digits.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.
Ex. Number = 1234 , the answer will be 4321
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; }
//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)