C ++中的灯泡切换器

假设有最初关闭的n个灯泡。我们首先打开所有灯泡。然后,我们每隔一秒关闭一次灯泡。在第三轮中,我们切换第三个灯泡(如果熄灭则打开,如果点亮则熄灭)。同样,对于第i轮,我们切换每个i灯泡。对于第n轮,我们仅切换最后一个灯泡。因此,我们必须找出n个回合后打开多少个灯泡。因此,如果输入为3,则结果将为1。这是因为-

  • 首先,三个灯泡是[off,off,off]。

  • 在第一轮之后,三个灯泡都亮着。

  • 在第二轮之后,三个灯泡将[打开,关闭,打开]。

  • 第三轮之后,三个灯泡都亮起,熄灭,熄灭。

为了解决这个问题,我们将遵循以下步骤-

  • 这一步很简单,我们必须找到n的平方根并返回。

让我们看下面的实现以更好地理解-

示例

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int bulbSwitch(int n) {
      return sqrt(n);
   }
};
main(){
   Solution ob;
   cout << (ob.bulbSwitch(3));
}

输入值

3

输出结果

1