計算亮燈的個數

2022-04-06 11:33:01 字數 945 閱讀 4715

描述:一條長廊裡依次裝有n(1≤n≤65535)盞電燈,從頭到尾編號1、2、3、…n-1、n。每盞電燈由乙個拉線開關控制。開始,電燈全部關著。

有n個學生從長廊穿過。第乙個學生把號碼凡是1的倍數的電燈的開關拉一下;接著第二個學生把號碼凡是2的倍數的電燈的開關拉一下;接著第三個學生把號碼凡是3的倍數的電燈的開關拉一下;如此繼續下去,最後第n個學生把號碼凡是n的倍數的電燈的開關拉一下。n個學生按此規定走完後,長廊裡電燈有幾盞亮著。

注:電燈數和學生數一致。不能寫雙重迴圈,會執行超時。

例如:輸入:10  輸出:3

**1

(使用了雙重迴圈,當輸入為65535時,輸出為255.但是執行時間較長)

#define _crt_secure_no_warnings

#include#include#includeint main()

} }//計算lamp陣列中元素為奇數的個數。該值即為最後亮燈的個數。

for (i = 1; i <= n; i++) }

printf("%d", m);

return 0;

}

**2:

當開關奇數次時,燈就會亮。因此題目轉化為:

計算n個整數1~n中,有奇數個因子的個數。

因為因子是成對出現的,所以只有完全平方數才有奇數個因子。

因此題目轉化為求1~n中完全平方數的個數。

#define _crt_secure_no_warnings

#include int main()

**3:最簡單的方法

#define _crt_secure_no_warnings

#include #include int main()

燈亮的個數

一條長廊裡依次裝有n 1 n 65535 盞電燈,從頭到尾編號1 2 3 n 1 n。每盞電燈由乙個拉線開關控制。開始,電燈全部關著。有n個學生從長廊穿過。第乙個學生把號碼凡是1的倍數的電燈的開關拉一下 接著第二個學生把號碼凡是2的倍數的電燈的開關拉一下 接著第三個學生把號碼凡是3的倍數的電燈的開關...

解決TPMS燈亮的問題

來美國打工一段時間了,早上上班的時候突然發現儀錶盤上乙個黃燈亮了,對車不在行,還以為是油加多了,大膽的開上了高速,到 公司也忘了,又開著上高速回家了。回家快睡覺的時候才想起來,看了一下manual,說那個是tpms燈 tire pressure motoring system 輪胎壓力監測系統,說明...

樹莓派 亮燈 筆記

突然有空可以研究一下樹莓派的東西,跟著教程做了個亮燈的,記錄一下 bcm 對應 gpio numbers board 對應 physical numbers。gpio.setmode gpio.bcm 把引腳 2 3 設定為輸出模式 gpio.setup 2,gpio.out gpio.setup ...