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