https://vjudge.net/problem/OpenJ_Bailian-2811
熄灯问题是比较典型的算法题目(枚举),这里展示两种解法,供大家参考:
解发一:
#include <iostream>
#include<string>
#include<cstring>
#include<memory>
using namespace std;
char oriLights[5];
char lights[5];
char result[5];
int GetBit(char c,int i)
{
return (c>>i)&1;
}
void SetBit(char & c,int i,int v)
{
if(v){
c|=(1<<i);
}
else
c &= ~(1<<i);
}
void FlipBit(char & c,int i)
{
c ^= (1<<i);
}
void OutputResult(int t,char result[])
{
cout << "PUZZLE #" << t << endl;
for(int i=0;i<5;++i){
for(int j = 0;j<6;++j){
cout << GetBit(result[i],j);
if( j<5)
cout <<" ";
}