燈泡開關問題

來源:互聯網
上載者:User

標籤:

有編號1~100個燈泡,起初所有的燈都是滅的。有100個同學來按燈泡開關,如果燈是亮的,那麼按過開關之後,燈會滅掉。如果燈是滅的,按過開關之後燈會亮。
現在開始按開關。
第1個同學,把所有的燈泡開關都按一次(按開關燈的編號: 1,2,3,......100)。
第2個同學,隔一個燈按一次(按開關燈的編號: 2,4,6,......,100)。
第3個同學,隔兩個燈按一次(按開關燈的編號: 3,6,9,......,99)。
......
問題是,在第100
個同學按過之後,有多少盞燈是亮著的?這些燈的編號是多少?要求給出解題思路或給出偽碼。

?

//構造100盞燈,0表示關,1表示開

? ??for ($i=0;$i<100;$i++){

? ??$deng[] = 0;

? ??}

? ??//100個人

? ??for ($a=1;$a<101;$a++){

? ??

? ??//100個人來操作燈

? ??for ($b = $a;$b<101;$b++){

? ??//判斷燈的關閉,開則關,關則開

? ??if($deng[$b-1]==0){

? ??$deng[$b-1]=1;

? ??}else {

? ??$deng[$b-1]=0;

? ??}

? ??//這裡控制每個人操作那些燈,第一個人是1,2,3,而第二個人是2,4,6,第三個人是3,6,9

? ??$b=$b+$a-1;

? ??}

? ??}

//列印燈的開關資訊

? ??for ($c=0;$c<100;$c++){

? ??if($deng[$c]==0){

? ??dump(‘第‘.($c+1).‘盞燈是關閉的‘);

? ??}else {

? ??dump(‘第‘.($c+1).‘盞燈是開著的‘);

? ??}

? ??}

燈泡開關問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.