#include <iostream> #include <cstdint> using namespace std; // Declare enum class AdcConfig : uint8_t // ChannelEnable = 1 // InterruptEnable = 2 // DMAEnable = 4 enum class AdcConfig : uint8_t { ChannelEnable = 1, InterruptEnable = 2, DMAEnable = 4 }; const char* AdcConfigString[] { "ChannelEnable", "InterruptEnable", "DMAEnable"}; // Implement void printConfig(uint8_t cfg) void printConfig(uint8_t cfg) { if (!cfg) { cout << "None" << endl; return; } for ( int i = 0; i < 3; i++) { if ( cfg & ( 1 << i)) { cout << AdcConfigString[i] << " " ; } } } 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; }
Test Cases
Test Results
Input
1 0 1
Expected Output
ChannelEnable DMAEnable