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

// Declare enum class AdcConfig : uint8_t
enum class AdcConfig : uint8_t {
    ChannelEnable =1,
    InterruptEnable=2,
    DMAEnable =4,
};
// ChannelEnable = 1
// InterruptEnable = 2
// DMAEnable = 4
void printConfig(uint8_t cfg){
    if(cfg==0){
        cout<<"None";
        return;
    }
// Implement void printConfig(uint8_t cfg)
bool hasPrinted = false;
if(cfg & static_cast<uint8_t>(AdcConfig::ChannelEnable)){
    cout<<"ChannelEnable";
    hasPrinted = true;
}
if (cfg & static_cast<uint8_t>(AdcConfig::InterruptEnable)) {
        if (hasPrinted) cout << " "; // In khoảng trắng nếu đã có tính năng trước đó
        cout << "InterruptEnable";
        hasPrinted = true;
}
if (cfg & static_cast<uint8_t>(AdcConfig::DMAEnable)) {
        if (hasPrinted) cout << " ";
        cout << "DMAEnable";
    }
}
int main() {
    int ch, intr, dma;
    cin >> ch >> intr >> dma;

    uint8_t cfg = 0;
    if (ch)   cfg |= static_cast<uint8_t>(AdcConfig::ChannelEnable);
    if (intr) cfg |= static_cast<uint8_t>(AdcConfig::InterruptEnable);
    if (dma)  cfg |= static_cast<uint8_t>(AdcConfig::DMAEnable);

    printConfig(cfg);
    return 0;
}

Solving Approach

 

 

 

 

Upvote
Downvote
Loading...

Input

1 0 1

Expected Output

ChannelEnable DMAEnable