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
Lepaskan: 2023-09-11 21:09:02
ke hadapan
1026 orang telah melayarinya

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
Salin selepas log masuk

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);
}
Salin selepas log masuk

Output

1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111
Salin selepas log masuk

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!

Label berkaitan:
sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan