Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Write a program to reverse digits of a number

  • Difficulty Level : Easy
  • Last Updated : 30 Sep, 2021

Write a program to reverse the digits of an integer.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

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 reversDigits(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 reversDigits*/
int main()
{
    int num = 4562;
    cout << "Reverse of no. is " << reversDigits(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 reversDigits(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 reversDigits*/
int main()
{
    int num = 4562;
    printf("Reverse of no. is %d", reversDigits(num));
 
    getchar();
    return 0;
}


Java




// Java program to reverse a number
 
class GFG {
    /* Iterative function to reverse
    digits of num*/
    static int reversDigits(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 "
                           + reversDigits(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 reversDigits(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 "
                      + reversDigits(num));
    }
}
 
// This code is contributed by Sam007


PHP




<?php
// Iterative function to
// reverse digits of num
function reversDigits($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 ",
       reversDigits($num);
 
// This code is contributed by aj_36
?>


Javascript




<script>
    let num = 4562;
    // Function to reverse digits of num
    function reversDigits(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(reversDigits(num));
     
// This code is contributed by Surbhi tyagi
 
</script>


Output



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 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 Code
int main()
{
    int num = 4562;
    cout << "Reverse of no. is " << reversDigits(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 reversDigits*/
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>


Output

Reverse of no. is 2654

Time Complexity: 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 reversDigits(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 " << reversDigits(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>


Output

Reverse of no. is 2654

Time Complexity: O(log10n)

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.




My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!