100盞燈開關的問題

2022-09-05 05:33:13 字數 1033 閱讀 9084

今天朋友發了乙個小學五年級的題目,如下:

這小學五年級的題目也太難了吧0.0

用js的思路來完成這道題目:

1.有100盞燈,開始都是關著的

let arr = new array(100).fill(0);
可以建立乙個長度為100,每項為 0 的陣列(0表示關著,1表示開著)

2.第乙個學生按1的倍數燈,第二個學生按2的倍數燈。。。。。也就是說 每個燈只有被按了奇數次(1次 3次 5次。。。。)才是開著的 否則燈就是關著的,所以說乙個數 只有當它的約數為奇數個時 最後才是開著的。1-100 之間 任何乙個數的約數都有1和它本身 ,所以只要找到約數為奇數的時候 才表明這盞燈是開著的  。假設z號等 z的約數 有1 也有z,假設還有x和y, 所以我們換個說法就是,x=y 且 z是1到100的整數 ,所以只有能開整數平方根的數 最後都是開著的,所以很容易就得出最後開著的燈號是

1,4,9,16,25,36,49,54,81,100
用js來實現以下

for(let i=1;i<=100;i++)else

}

}}console.log(arr) // 這裡已經把約數為奇數個 位置上的 0 變成了 1 1表示開著 所以只要找到 1 就能找到開著的燈

var num = 0

for(let i=0;iif (arr[i]==1)     

}console.log('開燈的數量是:' + num)

這是最後列印的結果

開燈的編號是:1

開燈的編號是:4

開燈的編號是:9

開燈的編號是:16

開燈的編號是:25

開燈的編號是:36

開燈的編號是:49

開燈的編號是:64

開燈的編號是:81

開燈的編號是:100

最後開燈的數量是:10

100盞燈開關問題

問題描述 有100盞燈泡,第一輪點亮所有電燈,第二輪每兩盞燈熄滅一盞,即熄滅第2盞,第4盞,以此類推,第三輪改變編號為3的倍數的電燈,第3盞,第6盞,如果原來那盞燈是亮的,就熄滅它,如果原來是滅的,就點亮它,以此類推,直到第100輪。問第100結束後,還有多少盞燈泡是亮的?解答 分析可知如果最後某一...

100盞燈的問題

有100盞燈,從1 100編上號,開始時所有的燈都是關著的,第一次,把所有編號是1的倍數的燈的開關狀態改變一次 第二次,把所有編號是2的倍數的燈的開關狀態改變一次 第三次,把所有編號是3的倍數的燈的開關狀態改變一次 以此類推,直到把所有編號是100得倍數的燈的開關狀態改變一次。問,此時所有開著的燈的...

100盞燈的問題

有100盞燈,從1 100編上號,開始時所有的燈都是關著的,第一次,把所有編號是1的倍數的燈的開關狀態改變一次 第二次,把所有編號是2的倍數的燈的開關狀態改變一次 第三次,把所有編號是3的倍數的燈的開關狀態改變一次 以此類推,直到把所有編號是100得倍數的燈的開關狀態改變一次。問,此時所有開著的燈的...