Rumah >pembangunan bahagian belakang >C++ >Cara yang menarik untuk menjana nombor binari dari 1 hingga n?

Cara yang menarik untuk menjana nombor binari dari 1 hingga n?

PHPz
PHPzke hadapan
2023-09-11 21:09:021028semak imbas

Cara yang menarik untuk menjana nombor binari dari 1 hingga n?

Di sini kita akan melihat kaedah yang menarik untuk menjana nombor binari dari 1 hingga n. Kami melakukan ini menggunakan baris gilir. Pada mulanya, nombor binari pertama '1' akan diadakan dalam baris gilir. Sekarang berulang kali keluarkan elemen daripada baris gilir dan cetaknya dan tambah 0 pada penghujung elemen sebelumnya dan 1 pada penghujung elemen sebelumnya dan masukkannya ke dalam baris gilir. Mari kita lihat algoritma untuk mendapatkan idea ini. Terjemahan bahasa Cina bagi

algoritma

genBinaryNumbers(n)

Begin
   define empty queue.
   insert 1 into the queue
   while n is not 0, do
      delete element from queue and store it into s1
      print s1
      s2 := s1
      insert s1 by adding 0 after it into queue
      insert s1 by adding 1 after it into queue
      decrease n by 1
   done
End

Contoh

ialah:

Contoh

#include <iostream>
#include <queue>
using namespace std;
void genBinaryNumbers(int n){
   queue<string> qu;
   qu.push("1");
   while(n != 0){
      string s1 = qu.front();
      qu.pop();
      cout << s1 << " ";
      string s2 = s1;
      qu.push(s1 + "0");
      qu.push(s1 + "1");
      n--;
   }
}
int main() {
   int n = 15;
   genBinaryNumbers(n);
}

Output

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

Atas ialah kandungan terperinci Cara yang menarik untuk menjana nombor binari dari 1 hingga n?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam