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

更新於: 2020年5月2日

1K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始
廣告