C ++中的灯泡切换器II
假设有一个房间,其中最初打开的是n个灯,墙上有4个按钮。在对按钮执行了确切的m个未知操作之后,我们需要返回n个灯可能有多少种不同类型的状态。因此,考虑将n个灯标记为数字[1、2、3...,n],这4个按钮的功能如下-
翻转所有的灯。
偶数的翻转灯。
翻转带奇数的灯。
翻转灯具有(3k+1)个数字,k=0、1、2,...
现在,如果n=3且m=1,则将有4种运算,分别是[off,on,off],[on,off,on],[off,off,off],[off,on,on]
为了解决这个问题,我们将遵循以下步骤-
如果n为0或m为0,则返回1
如果n为1,则返回2
如果n为2,则返回3,当m为1时,否则返回4
如果m为1,则返回4
如果m为2,则返回7,否则返回8。
让我们看下面的实现以更好地理解-
示例
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int flipLights(int n, int m) {
if (m == 0 || n == 0) return 1;
if (n == 1) return 2;
if (n == 2) return m == 1? 3:4;
if (m == 1) return 4;
return m == 2? 7:8;
}
};
main(){
Solution ob;
cout << (ob.flipLights(3, 1));
}输入值
3 1
输出结果
4
热门推荐
10 香港老妈结婚祝福语简短
11 毕业立体贺卡祝福语简短
12 简短新年年会祝福语
13 评论小品祝福语大全简短
14 恭喜师兄结婚祝福语简短
15 员工集体辞职祝福语简短
16 高中新生祝福语 简短
17 装修祝福语男生搞笑简短
18 生日开业蛋糕祝福语简短