今天朋友發了乙個小學五年級的題目,如下:
這小學五年級的題目也太難了吧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++)elsefor(let i=0;iif (arr[i]==1)}
}}console.log(arr) // 這裡已經把約數為奇數個 位置上的 0 變成了 1 1表示開著 所以只要找到 1 就能找到開著的燈
var num = 0
}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得倍數的燈的開關狀態改變一次。問,此時所有開著的燈的...