生成从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