# 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)

## 5 comments

Write commentsPlease,could you explain why you used the " while(number) " - what is the function of it.

ReplyAnd one other question,how to write the code source for typing also zeros

for ex. when we write the number 012 to get the reserved number 210.

Hi John, Sorry for the late reply. while(number) means that we'll gonna continue the iteration while the number is not yet equal to 0 or when number is still more than 0. If you want to get the 0, you might you want to consider processing it as a string. I'll create a program and post it asoon here.

ReplyC++ Program to Reverse a Number

ReplyReverse of number means reverse the position of all digits of any number. For example reverse of 536 is 635

C++ Program to Reverse a Strings

ReplyReverse a String means reverse the position of all character of String. You can use swapping concept to reverse any string in c++.