Write a program to reverse digits of a number - GeeksforGeeks

06 May, 2022
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 = 0rev_num = rev_num *10 + num%10 = 2 num = num/10 = 456rev_num = rev_num *10 + num%10 = 20 + 6 = 26 num = num/10 = 45rev_num = rev_num *10 + num%10 = 260 + 5 = 265 num = num/10 = 4rev_num = rev_num *10 + num%10 = 2650 + 4 = 2654 num = num/10 = 0
Program: 
C++
C
Java
Python
C#
PHP
Javascript
#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)
#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 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 program to reverse a number  n = 4562rev = 0  while(n > 0):    a = n % 10    rev = rev * 10 + a    n = n // 10  print(rev)  # This code is contributed by Shariq Raza
// C# program to reverse a numberusing 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// Iterative function to // reverse digits of numfunction 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?>
<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
Java
Python3
C#
PHP
Javascript
// 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 Codeint main(){    int num = 4562;    cout << "Reverse of no. is " << reverseDigits(num);      return 0;}  // This code is contributed// by Akanksha Rai(Abby_akku)
// 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 program to reverse digits of a number  // Recursive function to// reverse digits of numclass 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
# Python 3 program to reverse digits# of a numberrev_num = 0base_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 Codenum = 4562print("Reverse of no. is ",      reversDigits(num))  # This code is contributed by Rajput-Ji
// C# program to reverse digits of a number  // Recursive function to// reverse digits of numusing 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 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?>
<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++
Java
Python3
C#
Javascript
// 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 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));    }}
# 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 codeif __name__ == "__main__":      num = 4562    print("Reverse of no. is ", reversDigits(num))      # This code is contributed by ukasp.
// C# program to reverse a numberusing 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
<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.
jit_t
Mithun Kumar
inderDuMCA
Akanksha_Rai
Rajput-Ji
RishabhPrabhu
MadhusudhanGupta
manish kumar 77
surbhityagi15
mayanktyagi1709
le0
ukasp
susmitakundugoaldanga
SHUBHAMSINGH10
souravmahato348
subhammahato348
arorakashish0911
rkbhola5
prophet1999
simranarora5sos
MakeMyTrip
MAQ Software
Modular Arithmetic
number-digits
Mathematical
Recursion
MakeMyTrip
MAQ Software
Mathematical
Recursion
Modular Arithmetic
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Merge two sorted arrays
Modulo Operator (%) in C/C++ with Examples
Prime Numbers
Program to find GCD or HCF of two numbers
Print all possible combinations of r elements in a given array of size n
Given an array A[] and a number x, check for pair in A[] with sum as x (aka Two Sum)
Recursion
Program for Tower of Hanoi
Backtracking | Introduction
Print all possible combinations of r elements in a given array of size n