python基礎 100盞燈的問題

2022-02-07 14:34:35 字數 573 閱讀 2503

快閃儲存器裡有人這樣提問這樣:

第一輪操作所有電燈,第二輪操作第2盞,第4盞開關,以此類推,第三輪改變編號為3的倍數的電燈,第3盞,第6盞,如果原來那盞燈是亮的,就熄滅它,如果原來是滅的,就點亮它,以此類推,直到第100輪

用python解決的思路如下:

燈泡有兩種狀態:開和關,用 -1代表關,用1代表開。每次操作後,狀態上乘以-1。

這樣問題就簡單多了:

#

on ---> 1 off ---> -1

dic =

deffoo(n):

for i in range(1,n+1):

for x in

dic:

if x%i ==false:

dic[x] = int(dic[x])*-1

return

dicnum = len()

print(f"

there are lights on.")

#there are 10 lights on.

100盞燈的問題

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

100盞燈的問題

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

100盞燈開關問題

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