燈泡開關問題

有編號1~100個燈泡,起初全部的燈都是滅的。有100個同窗來按燈泡開關,若是燈是亮的,那麼按過開關以後,燈會滅掉。若是燈是滅的,按過開關以後燈會亮。
如今開始按開關。
1個同窗,把全部的燈泡開關都按一次(按開關燈的編號: 1,2,3,......100)
2個同窗,隔一個燈按一次(按開關燈的編號: 2,4,6,......,100)
3個同窗,隔兩個燈按一次(按開關燈的編號: 3,6,9,......,99)
......
問題是,在第100
個同窗按過以後,有多少盞燈是亮着的?這些燈的編號是多少?要求給出解題思路或給出僞碼。
c++

 

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

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

    $deng[] = 0; it

    } im

    //100我的 img

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

     

    //100我的來操做燈 background

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

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

    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).'盞燈是開着的');

    }

    }

相關文章
相關標籤/搜索