Write a program to reverse digits of a number
Write a program to reverse the digits of an integer.
Examples :
Input : num = 12345 Output: 54321 Input : num = 876 Output: 678
Flowchart:
ITERATIVE WAY
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 = 4562
rev_num = 0
rev_num = rev_num *10 + num%10 = 2
num = num/10 = 456
rev_num = rev_num *10 + num%10 = 20 + 6 = 26
num = num/10 = 45
rev_num = rev_num *10 + num%10 = 260 + 5 = 265
num = num/10 = 4
rev_num = rev_num *10 + num%10 = 2650 + 4 = 2654
num = num/10 = 0
Program:
C++
#include <bits/stdc++.h> using namespace std; /* Iterative function to reverse digits of num*/ int reverseDigits( int num) { int rev_num = 0; while (num > 0) { rev_num = rev_num * 10 + num % 10; num = num / 10; } return rev_num; } /*Driver program to test reverseDigits*/ int main() { int num = 4562; cout << "Reverse of no. is " << reverseDigits(num); getchar (); return 0; } // This code is contributed // by Akanksha Rai(Abby_akku) |
C
#include <stdio.h> /* Iterative function to reverse digits of num*/ int reverseDigits( int num) { int rev_num = 0; while (num > 0) { rev_num = rev_num * 10 + num % 10; num = num / 10; } return rev_num; } /*Driver program to test reverseDigits*/ int main() { int num = 4562; printf ( "Reverse of no. is %d" , reverseDigits(num)); getchar (); return 0; } |
Java
// Java program to reverse a number class GFG { /* Iterative function to reverse digits of num*/ static int reverseDigits( int num) { int rev_num = 0 ; while (num > 0 ) { rev_num = rev_num * 10 + num % 10 ; num = num / 10 ; } return rev_num; } // Driver code public static void main(String[] args) { int num = 4562 ; System.out.println( "Reverse of no. is " + reverseDigits(num)); } } // This code is contributed by Anant Agarwal. |
Python
# Python program to reverse a number n = 4562 rev = 0 while (n > 0 ): a = n % 10 rev = rev * 10 + a n = n / / 10 print (rev) # This code is contributed by Shariq Raza |
C#
// C# program to reverse a number using System; class GFG { // Iterative function to // reverse digits of num static int reverseDigits( int num) { int rev_num = 0; while (num > 0) { rev_num = rev_num * 10 + num % 10; num = num / 10; } return rev_num; } // Driver code public static void Main() { int num = 4562; Console.Write( "Reverse of no. is " + reverseDigits(num)); } } // This code is contributed by Sam007 |
PHP
<?php // Iterative function to // reverse digits of num function reverseDigits( $num ) { $rev_num = 0; while ( $num > 1) { $rev_num = $rev_num * 10 + $num % 10; $num = (int) $num / 10; } return $rev_num ; } // Driver Code $num = 4562; echo "Reverse of no. is " , reverseDigits( $num ); // This code is contributed by aj_36 ?> |
Javascript
<script> let num = 4562; // Function to reverse digits of num function reverseDigits(num) { let rev_num = 0; while (num > 0) { rev_num = rev_num * 10 + num % 10; num = Math.floor(num / 10); } return rev_num; } // function call document.write(reverseDigits(num)); // This code is contributed by Surbhi tyagi </script> |
Reverse of no. is 2654
Time Complexity: O(log(n)), where n is the input number.
Auxiliary Space: O(1)
RECURSIVE WAY :
C++
// C++ program to reverse digits of a number #include <bits/stdc++.h> using namespace std; /* Recursive function to reverse digits of num*/ int reverseDigits( int num) { static int rev_num = 0; static int base_pos = 1; if (num > 0) { reverseDigits(num / 10); rev_num += (num % 10) * base_pos; base_pos *= 10; } return rev_num; } // Driver Code int main() { int num = 4562; cout << "Reverse of no. is " << reverseDigits(num); return 0; } // This code is contributed // by Akanksha Rai(Abby_akku) |
C
// C program to reverse digits of a number #include <stdio.h>; /* Recursive function to reverse digits of num*/ int reversDigits( int num) { static int rev_num = 0; static int base_pos = 1; if (num > 0) { reversDigits(num / 10); rev_num += (num % 10) * base_pos; base_pos *= 10; } return rev_num; } /*Driver program to test reverse Digits*/ int main() { int num = 4562; printf ( "Reverse of no. is %d" , reversDigits(num)); getchar (); return 0; } |
Java
// Java program to reverse digits of a number // Recursive function to // reverse digits of num class GFG { static int rev_num = 0 ; static int base_pos = 1 ; static int reversDigits( int num) { if (num > 0 ) { reversDigits(num / 10 ); rev_num += (num % 10 ) * base_pos; base_pos *= 10 ; } return rev_num; } // Driver Code public static void main(String[] args) { int num = 4562 ; System.out.println(reversDigits(num)); } } // This code is contributed by mits |
Python3
# Python 3 program to reverse digits # of a number rev_num = 0 base_pos = 1 # Recursive function to reverse # digits of num def 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 # Driver Code num = 4562 print ( "Reverse of no. is " , reversDigits(num)) # This code is contributed by Rajput-Ji |
C#
// C# program to reverse digits of a number // Recursive function to // reverse digits of num using System; class GFG { static int rev_num = 0; static int base_pos = 1; static int reversDigits( int num) { if (num > 0) { reversDigits(num / 10); rev_num += (num % 10) * base_pos; base_pos *= 10; } return rev_num; } // Driver Code public static void Main() { int num = 4562; Console.WriteLine(reversDigits(num)); } } // This code is contributed // by inder_verma |
PHP
<?php // PHP program to reverse digits of a number $rev_num = 0; $base_pos = 1; /* Recursive function to reverse digits of num*/ 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 ; } // Driver Code $num = 4562; echo "Reverse of no. is " , reversDigits( $num ); // This code is contributed by ajit ?> |
Javascript
<script> // Javascript program to reverse digits of a number /* Recursive function to reverse digits of num*/ var rev_num = 0; var base_pos = 1; function reversDigits(num) { if (num > 0) { reversDigits(Math.floor(num/10)); rev_num += (num%10)*base_pos; base_pos *= 10; } return rev_num; } // Driver Code let num = 4562; document.write( "Reverse of no. is " + reversDigits(num)); // This code is contributed // by Mayank Tyagi </script> |
Reverse of no. is 2654
Time Complexity: O(log(n))
Auxiliary Space: O(log(n)), where n is the input number.
Using String in java
We will convert the number to a string using StringBuffer after this, we will reverse that string using the reverse() method
corner case
Input: 32100
So for the above input if we try to solve this by reversing the string, then the output will be 00123.
So to deal with this situation we again need to convert the string to integer so that our output will be 123
C++
// C++ program to reverse a number #include <bits/stdc++.h> using namespace std; int reverseDigits( int num) { // converting number to string string strin = to_string(num); // reversing the string reverse(strin.begin(), strin.end()); // converting string to integer num = stoi(strin); // returning integer return num; } int main() { int num = 4562; cout << "Reverse of no. is " << reverseDigits(num); return 0; } // This Code is contributed by ShubhamSingh10 |
Java
// Java program to reverse a number public class GFG { static int reversDigits( int num) { // converting number to string StringBuffer string = new StringBuffer(String.valueOf(num)); // reversing the string string.reverse(); // converting string to integer num = Integer.parseInt(String.valueOf(string)); // returning integer return num; } public static void main(String[] args) { int num = 4562 ; System.out.println( "Reverse of no. is " + reversDigits(num)); } } |
Python3
# Python 3 program to reverse a number def reversDigits(num): # converting number to string string = str (num) # reversing the string string = list (string) string.reverse() string = ''.join(string) # converting string to integer num = int (string) # returning integer return num # Driver code if __name__ = = "__main__" : num = 4562 print ( "Reverse of no. is " , reversDigits(num)) # This code is contributed by ukasp. |
C#
// C# program to reverse a number using System; public class GFG{ public static string ReverseString( string s) { char [] array = s.ToCharArray(); Array.Reverse(array); return new string (array); } static int reversDigits( int num) { // converting number to string string strin = num.ToString(); // reversing the string strin = ReverseString(strin); // converting string to integer num = int .Parse(strin); // returning integer return num; } // Driver code static public void Main () { int num = 4562; Console.Write( "Reverse of no. is " + reversDigits(num)); } } // This Code is contributed by ShubhamSingh10 |
Javascript
<script> // Javascript program to reverse a number function reversDigits(num) { // converting number to string let str = num.toString().split( "" ).reverse().join( "" ); // converting string to integer num = parseInt(str); // returning integer return str; } // Driver Code let num = 4562; document.write( "Reverse of no. is " + reversDigits(num)); </script> |
Reverse of no. is 2654
Time Complexity: O(log10n) where n is the input number
Auxiliary Space: O(1)
Reverse digits of an integer with overflow handled
Note that the above program doesn’t consider leading zeroes. For example, for 100 programs will print 1. If you want to print 001 then see this comment from Maheshwar.
Try extensions of above functions that should also work for floating-point numbers.