開關燈問題兩種解決方法

2021-07-25 23:29:28 字數 608 閱讀 4659

有編號1~100個燈泡,起初所有的燈都是滅的。有100個同學來按燈泡開關,如果燈是亮的,那麼按過開關之後,燈會滅掉。如果燈是滅的,按過開關之後燈會亮。

現在開始按開關。

第1個同學,把所有的燈泡開關都按一次(按開關燈的編號: 1,2,3,……100)。

第2個同學,隔乙個燈按一次(按開關燈的編號: 2,4,6,……,100)。

第3個同學,隔兩個燈按一次(按開關燈的編號: 3,6,9,……,99)。

……問題是,在第100個同學按過之後,有多少盞燈是亮著的?

第一種暴力迴圈,看起來效果也是不錯的,下面是第一部分是暴力迴圈**,當然還有一種是用數學的方法,非常巧妙

#include 

using

namespace

std;

int a[1010] = ;

int main()}}

for (int i = 1; i <= n; i++)

else

cout

0;}

下面是數學的方法

八皇后問題的兩種解決方法

最近看到遞迴,原本利用回溯思想解決的經典八皇后問題,其實也是可以用遞迴解決的 八皇后的遞迴解決思路 從第一行開始,依次判斷0 8列的哪一列可以放置queen,這樣就確定了該行的queen的位置,然後行數遞增,繼而遞迴實現下一行的判斷,依次類推直到行數增加到8 行數從0開始的 此時為遞迴 歸的條件,即...

Ajax跨域問題的兩種解決方法

瀏覽器不允許ajax跨站請求,所以存在ajax跨域問題,目前主要有兩種辦法解決。1 在請求頁面上使用access control allow origin標頭。header access control allow origin header access control allow origin ...

全排列 全組合問題的兩種解決方法

mark兩種計算 全排序問題 全組合問題 的組合和非組合解決方法 1.有排序的全排列 全組合 問題 這個用遞迴的方式解決 a.取陣列n中的最大值 b.再在剩下的n 1個中取m 1個 c.直到取到從n m 1個數中取出1個為止 d.再取出陣列中次大的,重複a步驟,直到取到的數的編號 m 下面貼出c的實...