C++ 中的灯泡切换器

c++server side programmingprogramming更新于 2024/9/1 3:30:00

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

  • 一开始,三个灯泡是 [关,关,关]。
  • 第一轮之后,三个灯泡是 [开,开,开]。
  • 第二轮之后,三个灯泡是 [开,关,开]。
  • 第三轮之后,三个灯泡是 [开,关,关]。

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

  • 这一步很简单,我们必须找到 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

相关文章