Print all combinations of balanced binary

Here given code implementation process.

// C Program
// Print all combinations of balanced binary
// 50 % 0 and 50 % 1 Probability
#include <stdio.h>

void balancedBinary(char result[], int n, int zero, int one, int index)
{
	if (zero > n || one > n)
	{
		return;
	}
	if (index == n *2)
	{
		printf("%s\n", result);
		return;
	}
	// Set 0's 
	result[index] = '0';
	balancedBinary(result, n, zero + 1, one, index + 1);
	// Set 1's 
	result[index] = '1';
	balancedBinary(result, n, zero, one + 1, index + 1);
}
void findSolution(int n)
{
	if (n <= 0)
	{
		return;
	}
	int k = n *2 + 1;
	char result[k];
	// set the value of last char is to terminating character
	result[k - 1] = '\0';
	balancedBinary(result, n, 0, 0, 0);
}
int main()
{
	int n = 3;
	findSolution(n);
	return 0;
}

Output

000111
001011
001101
001110
010011
010101
010110
011001
011010
011100
100011
100101
100110
101001
101010
101100
110001
110010
110100
111000
// Java program for
// Print all combinations of balanced binary
// 50 % 0 and 50 % 1 Probability
public class Combination
{
    public void balancedBinary(String result, 
                                int n, 
                                int zero, 
                                int one, 
                                int index)
    {
        if (zero > n || one > n)
        {
            return;
        }
        if (index == n * 2)
        {
            System.out.println( result );
            return;
        }
        // Set 0's 
     
        balancedBinary(result+"0", n, zero + 1, one, index + 1);
        // Set 1's 
        balancedBinary(result+"1", n, zero, one + 1, index + 1);
    }
    public void findSolution(int n)
    {
        if (n <= 0)
        {
            return;
        }
        balancedBinary("", n, 0, 0, 0);
    }
    public static void main(String[] args)
    {
        Combination task = new Combination();

        int n = 3;
        
        task.findSolution(n);
    }
}

Output

000111
001011
001101
001110
010011
010101
010110
011001
011010
011100
100011
100101
100110
101001
101010
101100
110001
110010
110100
111000
// Include header file
#include <iostream>
using namespace std;
// C++ program for
// Print all combinations of balanced binary
// 50 % 0 and 50 % 1 Probability
class Combination
{
	public: void balancedBinary(string result, 
                                int n, 
                                int zero, 
                                int one, 
                                int index)
	{
		if (zero > n || one > n)
		{
			return;
		}
		if (index == n *2)
		{
			cout << result << endl;
			return;
		}
		// Set 0's 
		this->balancedBinary(result  +  "0", n, 
                             zero + 1, one, index + 1);
		// Set 1's 
		this->balancedBinary(result  +  "1", n, 
                             zero, one + 1, index + 1);
	}
	void findSolution(int n)
	{
		if (n <= 0)
		{
			return;
		}
		this->balancedBinary("", n, 0, 0, 0);
	}
};
int main()
{
	Combination *task = new Combination();
	int n = 3;
	task->findSolution(n);
	return 0;
}

Output

000111
001011
001101
001110
010011
010101
010110
011001
011010
011100
100011
100101
100110
101001
101010
101100
110001
110010
110100
111000
// Include namespace system
using System;
// Csharp program for
// Print all combinations of balanced binary
// 50 % 0 and 50 % 1 Probability
public class Combination
{
	public void balancedBinary(String result, 
                                int n, 
                                int zero, 
                                int one, 
                                int index)
	{
		if (zero > n || one > n)
		{
			return;
		}
		if (index == n * 2)
		{
			Console.WriteLine(result);
			return;
		}
		// Set 0's 
		this.balancedBinary(result + "0", n, zero + 1, one, index + 1);
		// Set 1's 
		this.balancedBinary(result + "1", n, zero, one + 1, index + 1);
	}
	public void findSolution(int n)
	{
		if (n <= 0)
		{
			return;
		}
		this.balancedBinary("", n, 0, 0, 0);
	}
	public static void Main(String[] args)
	{
		Combination task = new Combination();
		int n = 3;
		task.findSolution(n);
	}
}

Output

000111
001011
001101
001110
010011
010101
010110
011001
011010
011100
100011
100101
100110
101001
101010
101100
110001
110010
110100
111000
package main
import "fmt"
// Go program for
// Print all combinations of balanced binary
// 50 % 0 and 50 % 1 Probability
type Combination struct {}
func getCombination() * Combination {
	var me *Combination = &Combination {}
	return me
}
func(this Combination) balancedBinary(result string, 
	n int, zero int, one int, index int) {
	if zero > n || one > n {
		return
	}
	if index == n * 2 {
		fmt.Println(result)
		return
	}
	// Set 0's 
	this.balancedBinary(result + "0", n, 
		zero + 1, one, index + 1)
	// Set 1's 
	this.balancedBinary(result + "1", n, 
		zero, one + 1, index + 1)
}
func(this Combination) findSolution(n int) {
	if n <= 0 {
		return
	}
	this.balancedBinary("", n, 0, 0, 0)
}
func main() {
	var task * Combination = getCombination()
	var n int = 3
	task.findSolution(n)
}

Output

000111
001011
001101
001110
010011
010101
010110
011001
011010
011100
100011
100101
100110
101001
101010
101100
110001
110010
110100
111000
<?php
// Php program for
// Print all combinations of balanced binary
// 50 % 0 and 50 % 1 Probability
class Combination
{
	public	function balancedBinary($result, 
                                     $n, 
                                     $zero,
                                     $one, 
                                     $index)
	{
		if ($zero > $n || $one > $n)
		{
			return;
		}
		if ($index == $n * 2)
		{
			echo($result."\n");
			return;
		}
		// Set 0's 
		$this->balancedBinary($result."0", $n, 
                              $zero + 1, $one, $index + 1);
		// Set 1's 
		$this->balancedBinary($result."1", $n, 
                              $zero, $one + 1, $index + 1);
	}
	public	function findSolution($n)
	{
		if ($n <= 0)
		{
			return;
		}
		$this->balancedBinary("", $n, 0, 0, 0);
	}
}

function main()
{
	$task = new Combination();
	$n = 3;
	$task->findSolution($n);
}
main();

Output

000111
001011
001101
001110
010011
010101
010110
011001
011010
011100
100011
100101
100110
101001
101010
101100
110001
110010
110100
111000
// Node JS program for
// Print all combinations of balanced binary
// 50 % 0 and 50 % 1 Probability
class Combination
{
	balancedBinary(result, n, zero, one, index)
	{
		if (zero > n || one > n)
		{
			return;
		}
		if (index == n * 2)
		{
			console.log(result);
			return;
		}
		// Set 0's 
		this.balancedBinary(result + "0", n, 
                            zero + 1, one, index + 1);
		// Set 1's 
		this.balancedBinary(result + "1", n, 
                            zero, one + 1, index + 1);
	}
	findSolution(n)
	{
		if (n <= 0)
		{
			return;
		}
		this.balancedBinary("", n, 0, 0, 0);
	}
}

function main()
{
	var task = new Combination();
	var n = 3;
	task.findSolution(n);
}
main();

Output

000111
001011
001101
001110
010011
010101
010110
011001
011010
011100
100011
100101
100110
101001
101010
101100
110001
110010
110100
111000
#  Python 3 program for
#  Print all combinations of balanced binary
#  50 % 0 and 50 % 1 Probability
class Combination :
	def balancedBinary(self, result, n, zero, one, index) :
		if (zero > n or one > n) :
			return
		
		if (index == n * 2) :
			print(result)
			return
		
		#  Set 0's 
		self.balancedBinary(result + "0", n, 
                            zero + 1, one, index + 1)
		#  Set 1's 
		self.balancedBinary(result + "1", n, 
                            zero, one + 1, index + 1)
	
	def findSolution(self, n) :
		if (n <= 0) :
			return
		
		self.balancedBinary("", n, 0, 0, 0)
	

def main() :
	task = Combination()
	n = 3
	task.findSolution(n)

if __name__ == "__main__": main()

Output

000111
001011
001101
001110
010011
010101
010110
011001
011010
011100
100011
100101
100110
101001
101010
101100
110001
110010
110100
111000
#  Ruby program for
#  Print all combinations of balanced binary
#  50 % 0 and 50 % 1 Probability
class Combination 
	def balancedBinary(result, n, zero, one, index) 
		if (zero > n || one > n) 
			return
		end

		if (index == n * 2) 
			print(result, "\n")
			return
		end

		#  Set 0's 
		self.balancedBinary(result + "0", n, 
                            zero + 1, one, index + 1)
		#  Set 1's 
		self.balancedBinary(result + "1", n, 
                            zero, one + 1, index + 1)
	end

	def findSolution(n) 
		if (n <= 0) 
			return
		end

		self.balancedBinary("", n, 0, 0, 0)
	end

end

def main() 
	task = Combination.new()
	n = 3
	task.findSolution(n)
end

main()

Output

000111
001011
001101
001110
010011
010101
010110
011001
011010
011100
100011
100101
100110
101001
101010
101100
110001
110010
110100
111000
// Scala program for
// Print all combinations of balanced binary
// 50 % 0 and 50 % 1 Probability
class Combination()
{
	def balancedBinary(result: String, n: Int, 
                       zero: Int, one: Int, 
                       index: Int): Unit = {
		if (zero > n || one > n)
		{
			return;
		}
		if (index == n * 2)
		{
			println(result);
			return;
		}
		// Set 0's 
		balancedBinary(result + "0", n, zero + 1, one, index + 1);
		// Set 1's 
		balancedBinary(result + "1", n, zero, one + 1, index + 1);
	}
	def findSolution(n: Int): Unit = {
		if (n <= 0)
		{
			return;
		}
		balancedBinary("", n, 0, 0, 0);
	}
}
object Main
{
	def main(args: Array[String]): Unit = {
		var task: Combination = new Combination();
		var n: Int = 3;
		task.findSolution(n);
	}
}

Output

000111
001011
001101
001110
010011
010101
010110
011001
011010
011100
100011
100101
100110
101001
101010
101100
110001
110010
110100
111000
// Swift 4 program for
// Print all combinations of balanced binary
// 50 % 0 and 50 % 1 Probability
class Combination
{
	func balancedBinary(_ result: String, 
                         _ n: Int, 
                         _ zero: Int, 
                         _ one: Int,
                         _ index: Int)
	{
		if (zero > n || one > n)
		{
			return;
		}
		if (index == n * 2)
		{
			print(result);
			return;
		}
		// Set 0's 
		self.balancedBinary(result + "0", n, 
                            zero + 1, one, index + 1);
		// Set 1's 
		self.balancedBinary(result + "1", n, 
                            zero, one + 1, index + 1);
	}
	func findSolution(_ n: Int)
	{
		if (n <= 0)
		{
			return;
		}
		self.balancedBinary("", n, 0, 0, 0);
	}
}
func main()
{
	let task: Combination = Combination();
	let n: Int = 3;
	task.findSolution(n);
}
main();

Output

000111
001011
001101
001110
010011
010101
010110
011001
011010
011100
100011
100101
100110
101001
101010
101100
110001
110010
110100
111000
// Kotlin program for
// Print all combinations of balanced binary
// 50 % 0 and 50 % 1 Probability
class Combination
{
	fun balancedBinary(result: String, n: Int, 
                        zero: Int, one: Int, index: Int): Unit
	{
		if (zero > n || one > n)
		{
			return;
		}
		if (index == n * 2)
		{
			println(result);
			return;
		}
		// Set 0's 
		this.balancedBinary(result + "0", n, 
                            zero + 1, one, index + 1);
		// Set 1's 
		this.balancedBinary(result + "1", n, 
                            zero, one + 1, index + 1);
	}
	fun findSolution(n: Int): Unit
	{
		if (n <= 0)
		{
			return;
		}
		this.balancedBinary("", n, 0, 0, 0);
	}
}
fun main(args: Array < String > ): Unit
{
	val task: Combination = Combination();
	val n: Int = 3;
	task.findSolution(n);
}

Output

000111
001011
001101
001110
010011
010101
010110
011001
011010
011100
100011
100101
100110
101001
101010
101100
110001
110010
110100
111000


Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment







© 2021, kalkicode.com, All rights reserved