Write a program to display Reverse of any number in PHP ?
Last Updated :
07 Oct, 2021
Write a program to reverse the digits of an integer.
Examples :
Input : num = 12345
Output: 54321
Input : num = 876
Output: 678
It can be achieved using Iterative way or Recursive Way
Iterative Method:
Algorithm:
Input: num
(1) Initialize rev_num = 0
(2) Loop while num > 0
(a) Multiply rev_num by 10 and add remainder
of num divide by 10 to rev_num
rev_num = rev_num*10 + num%10;
(b) Divide num by 10
(3) Return rev_num
Example:
num = 456213
rev_num = 0
rev_num = rev_num *10 + num%10 = 3
num = num/10 = 45621
rev_num = rev_num *10 + num%10 = 20 + 6 = 31
num = num/10 = 4562
rev_num = rev_num *10 + num%10 = 260 + 5 = 312
num = num/10 = 456
rev_num = rev_num *10 + num%10 = 2650 + 4 = 3126
num = num/10 = 45
rev_num = rev_num *10 + num%10 = 2650 + 4 = 31265
num = num/10 = 4
rev_num = rev_num *10 + num%10 = 2650 + 4 = 312654
num = num/10 = 0
Program:
PHP
<?php
function reversDigits( $num ) {
$rev_num = 0;
while ( $num > 1) {
$rev_num = $rev_num * 10 + $num % 10;
$num = (int) $num / 10;
}
return $rev_num ;
}
$num = 456213;
echo "Original number is :" . $num ;
echo "\r\n" ;
echo "Reverse of no. is " , reversDigits( $num );
?>
|
Output
Original number is :456213
Reverse of no. is 312654
Time Complexity: O(log(n)), where n is the input number.
Auxiliary Space: O(1)
Recursive Method:
PHP
<?php
$rev_num = 0;
$base_pos = 1;
function reversDigits( $num ) {
global $rev_num ;
global $base_pos ;
if ( $num > 0) {
reversDigits((int)( $num / 10));
$rev_num += ( $num % 10) *
$base_pos ;
$base_pos *= 10;
}
return $rev_num ;
}
$num = 456213;
echo "Original number is :" . $num ;
echo "\r\n" ;
echo "Reverse of no. is " ,
reversDigits( $num );
?>
|
Output
Original number is :456213
Reverse of no. is 312654
Time Complexity: O(log(n)) where n is the input number.
Share your thoughts in the comments
Please Login to comment...