Decimal to binary number using recursion

Given a decimal number as input, we need to write a program to convert the given decimal number into equivalent binary number.

Examples :

Input : 7                                                         
Output :111

Input :10
Output :1010

We have discussed one iterative solution in below post.
Program for Decimal to Binary Conversion



Below is Recursive solution

findBinary(decimal)
   if (decimal == 0)
      binary = 0
   else
      binary = decimal % 2 + 10 * (findBinary(decimal / 2)

.

Step by step process for better understanding of how the algorithm works
Let decimal number be 10.
Step 1-> 10 % 2 which is equal-too 0 + 10 * ( 10/2 ) % 2

Step 2-> 5 % 2 which is equal-too 1 + 10 * ( 5 / 2) % 2

Step 3-> 2 % 2 which is equal-too 0 + 10 * ( 2 / 2 ) % 2

Step 4-> 1 % 2 which is equal-too 1 + 10 * ( 1 / 2 ) % 2

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program for decimal to binary
// conversion using recursion
#include <bits/stdc++.h>
using namespace std;
  
// Decimal to binary conversion
// using recursion
int find(int decimal_number)
{
    if (decimal_number == 0) 
        return 0; 
    else
        return (decimal_number % 2 + 10 * 
                find(decimal_number / 2));
}
  
// Driver code 
int main()
{
    int decimal_number = 10;
    cout << find(decimal_number);
    return 0;
}
// This code is contributed by shivanisinghss2110

chevron_right


C

filter_none

edit
close

play_arrow

link
brightness_4
code

// C/C++ program for decimal to binary
// conversion using recursion
#include <stdio.h>
  
// Decimal to binary conversion
// using recursion
int find(int decimal_number)
{
    if (decimal_number == 0) 
        return 0; 
    else
        return (decimal_number % 2 + 10 * 
                find(decimal_number / 2));
}
  
// Driver code 
int main()
{
    int decimal_number = 10;
    printf("%d", find(decimal_number));
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program for decimal to binary
// conversion using recursion
import java.io.*;
  
class GFG 
{
      
    // Decimal to binary conversion 
    // using recursion
    static int find(int decimal_number)
    {
        if (decimal_number == 0
            return 0
              
        else
          
        return (decimal_number % 2 + 10
                find(decimal_number / 2));
    }
      
// Driver Code
public static void main(String args[])
{
    int decimal_number = 10;
    System.out.println(find(decimal_number));
}
  
}
  
// This code is contributed by Nikita Tiwari

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code for decimal to binary
# conversion using recursion
  
# Decimal to binary conversion 
# using recursion
def find( decimal_number ):
    if decimal_number == 0:
        return 0
    else:
        return (decimal_number % 2 + 10 * 
                find(int(decimal_number // 2)))
  
# Driver Code
decimal_number = 10
print(find(decimal_number))
  
# This code is contributed
# by "Sharad_Bhardwaj"

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program for decimal to binary
// conversion using recursion
using System;
  
class GFG 
{
      
    // Decimal to binary conversion 
    // using recursion
    static int find(int decimal_number)
    {
        if (decimal_number == 0) 
            return 0; 
              
        else
          
        return (decimal_number % 2 + 10 * 
                find(decimal_number / 2));
    }
      
    // Driver Code
    public static void Main()
    {
          
        int decimal_number = 10;
          
        Console.WriteLine(find(decimal_number));
    }
}
  
// This code is contributed by vt_m

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program for decimal to binary
// conversion using recursion
  
// Decimal to binary 
// conversion using recursion
function find($decimal_number)
{
    if ($decimal_number == 0) 
        return 0; 
    else
        return ($decimal_number % 2 + 10 * 
                find($decimal_number / 2));
}
  
// Driver Code
$decimal_number = 10;
echo(find($decimal_number));
  
// This code is contributed by Ajit.
?>

chevron_right



Output :

1010

GeeksforGeeks has prepared a complete interview preparation course with premium videos, theory, practice problems, TA support and many more features. Please refer Placement 100 for details




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.