Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

เซตขนาดใหญ่ที่สุดที่บิตวایز OR เท่ากับ n ใน C++

โจทย์

ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมหาเซตขนาดใหญ่ที่สุดที่บิตวایز OR (bitwise OR) เท่ากับตัวเลข n ที่กำหนด

มาดูขั้นตอนการแก้ปัญหา

  • กำหนดตัวเลข n
  • เขียนลูปที่วนรอบจาก 0 ถึง n
    • ถ้า i | n เท่ากับ n ให้เพิ่ม i เข้าไปในผลลัพธ์
  • คืนค่าผลลัพธ์

ตัวอย่าง

มาดูโค้ดกัน

#include <bits/stdc++.h> 
using namespace std; 

void printBitWiseOrSet(int n) { 
    vector<int> v; 
    for (int i = 0; i <= n; i++) { 
        if ((i | n) == n) { 
            v.push_back(i); 
        } 
    } 
    for (int i = 0; i < v.size(); i++) { 
        cout << v[i] << ' '; 
    } 
    cout << endl; 
} 

int main() { 
    int n = 7; 
    printBitWiseOrSet(n); 
    return 0; 
}

ผลลัพธ์

หากคุณรันโค้ดข้างต้น คุณจะได้ผลลัพธ์ดังนี้

0 1 2 3 4 5 6 7

สรุป

หากคุณมีคำถามในบทช่วยสอนนี้ ให้กล่าวถึงในส่วนความคิดเห็น