Write a program to reverse digits of a number

Write a program to reverse 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 = 265 + 4 = 2654
num = num/10 = 0

Program:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

#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)

chevron_right


C

filter_none

edit
close

play_arrow

link
brightness_4
code

#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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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.

chevron_right


Python

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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 

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?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
?>

chevron_right



Time Complexity: O(Log(n)) where n is the input number.
Output:

2654

RECURSIVE WAY
Thanks to Raj for adding this to the original post.

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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)

chevron_right


C

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// 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

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?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
?>

chevron_right



Output:

Reverse of no. is 2654

Time Complexity: O(Log(n)) where n is the input number.

Reverse digits of an integer with overflow handled

Note that above above program doesn’t consider leading zeroes. For example, for 100 program 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