Example 1: Reverse a Number using a while loop
num = 1234
reversed_num = 0
while num != 0:
digit = num % 10
reversed_num = reversed_num * 10 + digit
num //= 10
print["Reversed Number: " + str[reversed_num]]
Output
4321
In this program, while loop is used to reverse a number as given in the following steps:
- First, the remainder of the
num
divided by 10 is stored in the variabledigit
. Now, thedigit
contains the last digit ofnum
, i.e. 4.digit
is then added to the variable reversed after multiplying it by 10. Multiplication by 10 adds a new place in the reversed number. One-th place multiplied by 10 gives you tenth place, tenth gives you hundredth, and so on. In this case,reversed_num
contains0 * 10 + 4 = 4
.num
is then divided by 10 so that now it only contains the first three digits: 123. - After second iteration,
digit
equals 3, reversed equals4 * 10 + 3 = 43
andnum = 12
. - After third iteration,
digit
equals 2, reversed equals43 * 10 + 2 = 432
andnum = 1
. - After fourth iteration,
digit
equals 1, reversed equals432 * 10 + 1 = 4321
andnum = 0
. - Now
num = 0
, so the test expressionnum != 0
fails and while loop exits. reversed already contains the reversed number 4321.
Example 2: Using String slicing
num = 123456
print[str[num][::-1]]
Output
654321
Using the string slicing concept, you can get reverse the string. ::-1
corresponds to start:stop:step
. When you pass -1 as step
, the start
point goes to the end and stop
at the front.
It is the most asked programming question in the interview. We can reverse the integer number in Python using the different methods.
Here we will write the program which takes input number and reversed the same. Let's understand the following methods of reversing the integer number.
- Using while loop
- Using recursion
Reverse a number using Python while loop
First, we understand the algorithm of this program. It will make easy to understand the program logic. Once you get the logic, you can write the program in any language, not only Python.
Algorithm
Let's implement the above algorithm in program.
Program
Output:
Enter the integer number: 12345 The reverse number is: 54321
Explanation -
Let's understand this program step by step.
We initialed a number variable for user input and variable revs_number initial value to null.
First Iteration
Reminder = number %10
Reminder = 12345%10 = 5
Reverse = Reverse *10 + Reminder Initial value of revs_number is null
Reverse = 0 * 10 + 5 = 0 + 5 = 5
Number = Number //10
Number = 1234 //10 = 1234 // Now loop will iterate on this number.
Second Iteration
Now the number is 123, and the revs_number is 5. The while checks its condition and executes for the next iteration.
Reminder = Number % 10
Reminder = 1234 % 10 = 4
Reverse = Reverse *10+ Reminder = 5 * 10 + 4
Reverse = 50 + 4 = 54
Number = Number //10 = 12345 //10
Number = 123
Third Iteration
From the Second Iteration, the values of both Number and Reverse have been changed as: number = 123 and revs_number = 54
Reminder = Number %10
Reminder = 123%10 = 3
Reverse = Reverse *10+ Reminder = 54 * 10 + 3
Reverse = 540 + 3 = 543
Number = Number //10 = 123//10
Number = 12
Fourth Iteration
The modified number is 12 and the revs_number is 543: Now while executes again.
Reminder = Number %10
Reminder = 12 %10 = 2
Reverse = Reverse *10+ Reminder = 543 * 10 + 2
Reverse = 5430 + 2 = 5432
Number = Number //10 = 12//10
Number = 1
Fifth Iteration
Reminder = Number %10
Reminder = 1 %1 0 = 1
Reverse = Reverse *10+ Reminder = 5432 * 10 + 1
Reverse = 54320 + 1 = 54321
while loop is terminated because if found the false as a Boolean result.
You can enter the different number and check the result.
Reverse a Number Using Recursion
Let's understand the following example.
Output:
Enter the number: 5426 The Reverse of entered number is = 6245
Logic is same in both programs. Once you understand the logic, it will easy to do it by own.