Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Sinh số nhị phân 1..n dùng hàng đợi trong C++

Sinh số nhị phân từ 1 đến n dùng queue: bắt đầu với "1", lặp: lấy đầu, in, đẩy "s+0" và "s+1" vào queue.

Ví dụ n=5

Queue: "1" → in 1, đẩy "10","11" → in 10, đẩy "100","101" → in 11, đẩy "110","111"...

Chương trình

#include <iostream>
#include <queue>
using namespace std;

void genBinary(int n) {
    queue<string> q;
    q.push("1");
    
    while (n--) {
        string s = q.front(); q.pop();
        cout << s << " ";
        q.push(s + "0");
        q.push(s + "1");
    }
}

int main() {
    genBinary(15);
    return 0;
}

Kết quả

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