[力扣leetcode319]灯泡问题
燈泡問題
問題描述
初始時(shí)有 n 個(gè)燈泡處于關(guān)閉狀態(tài)。
對某個(gè)燈泡切換開關(guān)意味著:如果燈泡狀態(tài)為關(guān)閉,那該燈泡就會被開啟;而燈泡狀態(tài)為開啟,那該燈泡就會被關(guān)閉。
第 1 輪,每個(gè)燈泡切換一次開關(guān)。即,打開所有的燈泡。
第 2 輪,每兩個(gè)燈泡切換一次開關(guān)。 即,每兩個(gè)燈泡關(guān)閉一個(gè)。
第 3 輪,每三個(gè)燈泡切換一次開關(guān)。
第 i 輪,每 i 個(gè)燈泡切換一次開關(guān)。 而第 n 輪,你只切換最后一個(gè)燈泡的開關(guān)。
找出 n 輪后有多少個(gè)亮著的燈泡。
求解
剛開始看著這道題心里想,力扣你確定這是道中等題???兩個(gè)for循環(huán)把輪數(shù)的倍數(shù)對應(yīng)的燈泡切換開關(guān)不就行了。于是我洋洋灑灑兩分鐘敲完代碼。
隨便敲了個(gè)數(shù)檢驗(yàn),歐了。
然后。。。
我一看數(shù)據(jù)量,好家伙10的9次方。
痛定思痛可能不能用循環(huán)了,趕緊找了一下規(guī)律。
寫了一下n=9的時(shí)候的過程。
1 1 1 1 1 1 1 1 1
1 0 1 0 1 0 1 0 1
1 0 0 0 1 1 1 0 0
1 0 0 1 1 1 1 1 0
…
1 0 0 1 0 0 0 0 1
1,4,9這不就是完全平方數(shù)嗎?
某一個(gè)燈泡在它因子的輪數(shù)發(fā)生切換,我們只需要想哪些數(shù)有奇數(shù)個(gè)因子就好,正常來說因子必然是成對出現(xiàn)的,除了一類數(shù)——完全平方數(shù),它們有一對因子是相同的。所以問題解決。
總結(jié)
以上是生活随笔為你收集整理的[力扣leetcode319]灯泡问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 破解维吉尼亚密码
- 下一篇: 密码学信息理论基础2