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
廣告