C++ 中的灯泡开关
假设有 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
广告