📜  生成从0到n的所有二进制数

📅  最后修改于: 2022-05-13 01:57:08.412000             🧑  作者: Mango

生成从0到n的所有二进制数

给定一个正整数 n 生成从 0 到 n 的所有二进制数。

例子:

Input :  5
Output : 0  1  10  11  100  101    
Binary numbers are 0(0), 1(1), 2(10), 
3(11), 4(100) and 5(101).

Input : 10
Output : 0 1  10  11  100   101  110  
         111  1000  1001  1010

这个程序简单地使用了预定义的函数(C++ 中的 itoa()),它可以转换你想要的基数。使用这些函数并转换二进制数非常简单,它由三个值组成。

C++
// CPP function to generate all binary number
// from 0 to given number n
#include
#include
using namespace std;
  
// Maximum length of generated binary number
const int MAX = 100;
  
// CPP function to generate all binary number 
// for given number n
char binaryGenerator(int n)
{
    char a[MAX];
  
    for (int i = 0; i <= n; i++) {
  
        // use define function itoa() to convert 
        // in given base
        // a is char[] array where value store
        // 2  is base, which convert.
        itoa(i, a, 2);
  
        cout << a << endl;
    }
}
  
// Driven program
int main()
{
    int n = 10;
    binaryGenerator(n);
    return 0;
}


Java
// Java function to generate 
// all binary number from 
// 0 to given number n
import java.io.*;
  
class GFG
{ 
    static String itoa(int x, 
                       int base)
    {
        boolean negative = false;
        String s = "";
        if (x == 0)
            return "0";
        negative = (x < 0);
        if (negative)
            x = -1 * x;
        while (x != 0) 
        {
            // add char to
            // front of s
            s = (x % base) + s; 
              
            // integer division 
            // gives quotient
            x = x / base; 
        }
        if (negative)
            s = "-" + s;
        return s;
    }
      
    // function to generate
    // all binary number 
    // for given number n
    static void binaryGenerator(int n)
    {
        System.out.print("0 ");
        for (int i = 1; i <= n; i++)
        {
      
            // use define function 
            // itoa() to convert 
            // in given base
            // a is char[] array 
            // where value store
            // 2 is base, which convert.
            String a = new String(itoa(i, 2));
              
            System.out.print(a.substring(
                        0, a.length()) + " ");
        }
    }
      
    // Driver Code
    public static void main(String args[])
    {
        int n = 10;
        binaryGenerator(n);
    }
}
  
// This code is contributed by
// Manish Shaw(manishshaw1)


Python3
# Python function to generate 
# all binary number from 
# 0 to given number n
  
def itoa(x, base) :
  
    negative = False
    s = ""
    if (x == 0) :
        return "0"
    negative = (x < 0)
    if (negative) :
        x = -1 * x
    while (x != 0) :
      
        # add char to
        # front of s
        s = str(x % base) + s 
          
        # integer division 
        # gives quotient
        x = int(x / base) 
      
    if (negative) :
        s = "-" . s
  
    return s
  
# function to generate
# all binary number 
# for given number n
def binaryGenerator(n) :
  
    print ("0 ", end = "")
    for i in range(1, n + 1) :
      
        # use define function 
        # itoa() to convert 
        # in given base
        # a is char[] array 
        # where value store
        # 2 is base, which convert.
        a = itoa(i, 2)
          
        print ("{} ".format(a[0:]), end = "") 
  
# Driver Code
n = 10
binaryGenerator(n)
  
# This code is contributed by
# Manish Shaw(manishshaw1)


C#
// C# function to generate 
// all binary number from 
// 0 to given number n
using System;
  
class GFG
{ 
    static String itoa(int n, 
                       int radix) 
    {
        if(0 == n)
            return "0";
  
        var index = 10;
        var buffer = new char[1 + index];
        var xlat = "0123456789abcdefghijklmnopqrstuvwxyz";
  
        for(int r = Math.Abs(n), q; r > 0; r = q) 
        {
            q = Math.DivRem(r, radix, out r);
            buffer[index -= 1] = xlat[r];
        }
  
        if(n < 0) 
        {
            buffer[index -= 1] = '-';
        }
  
        return new String(buffer, index, 
                          buffer.Length - 
                                 index);
    }
      
    // function to generate
    // all binary number 
    // for given number n
    static void binaryGenerator(int n)
    {
        string a = "";
        Console.Write("0 ");
        for (int i = 1; i <= n; i++)
        {
      
            // use define function 
            // itoa() to convert 
            // in given base
            // a is char[] array 
            // where value store
            // 2 is base, which convert.
            a = itoa(i, 2);
              
            Console.Write(a.Substring(
                          0, a.Length - 1) + " ");
        }
    }
      
    // Driver Code
    static void Main()
    {
        int n = 10;
        binaryGenerator(n);
    }
}
  
// This code is contributed by
// Manish Shaw(manishshaw1)


PHP


输出:

0  1  10  11  100   101  110  111  1000  1001  1010