Cetak semua angka biner dari 1 hingga n dengan python

Diberi angka n, tulislah fungsi yang menghasilkan dan mencetak semua bilangan biner dengan nilai desimal dari 1 sampai n

Contoh

Input: n = 2
Output: 1, 10

Input: n = 5
Output: 1, 10, 11, 100, 101

Metode sederhana adalah menjalankan loop dari 1 hingga n, panggil desimal ke biner di dalam loop

Cetak semua angka biner dari 1 hingga n dengan python

Berikut adalah metode menarik yang menggunakan struktur data antrian untuk mencetak bilangan biner

1) Buat antrian string kosong
2) Enqueue bilangan biner pertama "1" ke antrian
3) Sekarang jalankan loop untuk menghasilkan dan mencetak n bilangan biner
a) Dequeue dan Cetak bagian depan antrian
b) Tambahkan "0" di akhir item depan dan enqueue
c) Tambahkan "1" di akhir item depan dan enqueue

Metode Pemrograman Python untuk Menghasilkan Bilangan Biner

[pastacode lang=”python” manual=”%23%20Python%20program%20to%20generate%20binary%20numbers%20from%20%0A%23%201%20to%20n%20%0A%20%0A%23%20This . put(%221%22)%0A%20%0A%20%20%20%20%23%20This%20loop%20is%20like%20BFS%20of%20a%20tree%20with%201%20as%20root%0A% . get()%20%0A%20%20%20%20%20%20%20%20print%20s1%20%0A%20%20%20%20%20%0A%20%20%20%20% . masukkan(s1%2B%220%22)%0A%20%0A%20%20%20%20%20%20%20%20%23%20Tambahkan%20%221%22%20to%20s2%20and%20enqueue . %20Catatan%20bahwa%20s2%0A%20%20%20%20%20%20%20%20%23%20berisi%20the%20previous%20depan%0A%20%20%20%20%20%20%20 . put(s2%2B%221%22)%0A%20%20%20%20%20%0A%20%0A%23%20Driver%20program%20to%20tes%20above%20fungsi%0An%20%3D%2010

Keluaran

1
10
11
100
101
110
111
1000
1001
1010
_

Total

1

Saham

Bagikan 1

Tweet 0

Sematkan 0

Diberi angka positif n_, secara efisien menghasilkan bilangan biner antara 1 dan n menggunakan struktur data antrian dalam waktu linier

Misalnya, untuk n = 16, bilangan binernya adalah

1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000

Latih soal ini

Berikut adalah implementasi C++, Java, dan Python

C++


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

#include

#include

#include

menggunakan namespace std;

 

// Berfungsi untuk menghasilkan bilangan biner antara 1 dan `n` menggunakan

// struktur data antrian

batal hasilkan(int n)

{

    // buat antrean kosong dan antrean 1

    antrean<string> q;

    q. tekan("1");

 

    // jalankan `n` kali

    int i = 1;

    sementara (i++ <= n)

    {

        // tambahkan 0 dan 1 ke elemen depan antrean dan

        // enqueue kedua string

        q. dorong(q. depan() + ");

        q. dorong(q. depan() + ");

 

        // dequeue elemen depan setelah mencetaknya

        cout << q. depan() << ' ';

        q. pop();

    }

}

 

int utama()

{

    int n = 16;

    hasilkan(n);

 

    kembalikan 0;

}

Unduh  Jalankan Kode

Jawa


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

impor java. bermanfaat. ArrayDeque;

impor java. bermanfaat. Antrian;

 

kelas Utama

{

    // Berfungsi untuk menghasilkan bilangan biner antara 1 dan `n` menggunakan

    // struktur data antrian

    publik statis batal hasilkan(int n)

    {

        // buat antrean kosong dan antrean 1

        Antrian q = new ArrayDeque<>();

        q. tambahkan("1");

 

        // jalankan `n` kali

        int i = 1;

        sementara (i++ <= n)

         {

            // menambahkan 0 dan 1 ke elemen depan antrean dan

            // enqueue kedua string

            q. tambahkan(q. mengintip() + ');

            q. tambahkan(q. mengintip() + ');

 

            // hapus elemen depan dan cetak

            Sistem. keluar. cetak(q. polling() + ');

        }

    }

 

    publik statis batal utama(String[] args)

    {

        int n = 16;

        hasilkan(n);

    }

}

Unduh  Jalankan Kode

Piton


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

dari koleksi impor deque

 

 

# Berfungsi untuk menghasilkan bilangan biner antara 1 dan `n` menggunakan

# struktur data antrian

def hasilkan(n):

 

    # buat antrean kosong dan antrean 1

    q = deque()

    q. tambahkan('1')

 

    # jalankan `n` kali

    untuk i dalam rentang(n):

        # hapus elemen depan

        depan = str(q.popleft())

 

        # menambahkan 0 dan 1 ke elemen depan antrean dan

        # enqueue kedua string

        q. tambahkan(depan + ')

        q. tambahkan(depan + ')

 

        # cetak elemen depan

        cetak(depan, end=' ')

 

 

jika __nama__ == '__main__'.

 

    n = 16

    hasilkan(n)

 

Unduh  Jalankan Kode

Keluaran
 
1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000

 
Kompleksitas waktu dari solusi di atas adalah O(n) dan membutuhkan O(n) . extra space.

 
Kita juga bisa menggunakan std. bitset di C++, seperti yang ditunjukkan di bawah ini.

C++


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

#include

#include

#include

menggunakan namespace std;

 

// Berfungsi untuk menghasilkan bilangan biner antara 1 dan `n` menggunakan `std. bitset`

int hasilkan(int n)

{

    // jalankan `n` kali

    untuk (int i = 1; i <= n; i++)

    {

        // ubah `i` menjadi bilangan biner 8–bit

        bitset<8> binary(i);

 

        // cetak bilangan biner saat ini

        cout << biner. to_string() << ' ';

    }

}

 

int utama()

{

    int n = 16;

    hasilkan(n);

 

    kembalikan 0;

}

Unduh  Jalankan Kode

Keluaran

00000001 00000010 00000011 00000100 00000101 00000110 00000111 00001000
00001001 00001010 00001011 00001100 00001101 00001110 00001111 00010000

Kompleksitas waktu dari solusi di atas adalah O(n) , dan ruang tambahan yang digunakan oleh program adalah O(1).

Bagaimana Anda mencetak bilangan biner dari 1 hingga N?

Hasilkan Bilangan Biner dari 1 hingga n menggunakan antrian. .
Buat antrian string kosong
Enqueue angka biner pertama "1" ke antrian
Sekarang jalankan loop untuk menghasilkan dan mencetak n bilangan biner. Dequeue dan Cetak bagian depan antrian. Tambahkan "0" di akhir item depan dan enqueue

Bagaimana cara mencetak daftar bilangan biner dengan Python?

Untuk mencetak nilai biner dari bilangan bulat tertentu, kita menggunakan fungsi bin() yang menerima angka sebagai argumen dan mengembalikan nilai biner.

Bagaimana Anda mencetak bilangan biner?

Untuk mencetak representasi biner dari unsigned integer, mulai dari bit ke-31, periksa apakah bit ke-31 HIDUP atau MATI, jika HIDUP cetak "1" jika tidak cetak "0". Sekarang periksa apakah bit ke-30 ON atau OFF, jika ON cetak "1" jika tidak cetak "0", lakukan ini untuk semua bit dari 31 hingga 0, akhirnya kita akan mendapatkan representasi bilangan biner

Apa itu bin () dengan Python?

Python bin() Fungsi . Hasilnya akan selalu dimulai dengan awalan 0b. returns the binary version of a specified integer. The result will always start with the prefix 0b .