319 燈泡開關

2021-08-22 12:09:54 字數 765 閱讀 7722

初始時有 n 個燈泡關閉。 第 1 輪,你開啟所有的燈泡。 第 2 輪,每兩個燈泡你關閉一次。 第 3 輪,每三個燈泡切換一次開關(如果關閉則開啟,如果開啟則關閉)。第 i 輪,每 i 個燈泡切換一次開關。 對於第 n 輪,你只切換最後乙個燈泡的開關。 找出 n 輪後有多少個亮著的燈泡。

示例:

輸入:3輸出:1解釋:初始時, 燈泡狀態[關閉, 關閉, 關閉].

第一輪後, 燈泡狀態[開啟, 開啟, 開啟].

第二輪後, 燈泡狀態[開啟, 關閉, 開啟].

第三輪後, 燈泡狀態[開啟, 關閉, 關閉].

你應該返回 1,因為只有乙個燈泡還亮著。

思路:

本題燈泡最後是亮還是滅與它的公因子數量有關,如果公因子數量為奇數,那麼最後就是亮的,如1,4,9。大部分奇數的公因子數量其實也是偶數(1和本身),也有奇數的公因子數量為奇數比如9,25。

說到這裡其實大家應該發現了規律,偶數一般情況下公因子數量必然是成雙成對的,奇數同理,只有少部分數存在同乙個數自乘得到該數,也就是完全平方數才有奇數項的因子。

所以這題轉換成了求在1-n範圍內的完全平方數的數量

code:

class solution 

};

319 燈泡開關

初始時有 n 個燈泡關閉。第 1 輪,你開啟所有的燈泡。第 2 輪,每兩個燈泡你關閉一次。第 3 輪,每三個燈泡切換一次開關 如果關閉則開啟,如果開啟則關閉 第 i 輪,每 i 個燈泡切換一次開關。對於第 n 輪,你只切換最後乙個燈泡的開關。找出 n 輪後有多少個亮著的燈泡。示例 輸入 3 輸出 1...

319 燈泡開關

鏈結 初始時有 n 個燈泡關閉。第 1 輪,你開啟所有的燈泡。第 2 輪,每兩個燈泡你關閉一次。第 3 輪,每三個燈泡切換一次開關 如果關閉則開啟,如果開啟則關閉 第 i 輪,每 i 個燈泡切換一次開關。對於第 n 輪,你只切換最後乙個燈泡的開關。找出 n 輪後有多少個亮著的燈泡。示例1 輸入 3 ...

319 燈泡開關

燈泡開關 初始時有 n 個燈泡關閉。第 1 輪,你開啟所有的燈泡。第 2 輪,每兩個燈泡你關閉一次。第 3 輪,每三個燈泡切換一次開關 如果關閉則開啟,如果開啟則關閉 第 i 輪,每 i 個燈泡切換一次開關。對於第 n 輪,你只切換最後乙個燈泡的開關。找出 n 輪後有多少個亮著的燈泡。輸入 3 輸出...