題目描述
有若干隻燈排成一排。所有的燈開始的時候都是關閉的,現對這些燈進行一系列的操作。在第
i次操作的時候,調整所有編號是
i的倍數的燈的狀態
(原本開啟的燈將它關閉,原本關閉的將它開啟)。
輸入
每組測試資料佔一行,包含乙個整數
n( 0 < n <= 10^5)
輸出
經過無限次操作之後,第
n隻燈的狀態(
0表示關,
1表示開)
樣例輸入
1
5樣例輸出
1
0思路:
開乙個10^5的陣列,用來表示一排燈
用memset函式將陣列全部元素置0;
問題重點在第n隻燈的狀態(0表示關,1表示開)
所以只需設定1個計數變數
然後用for迴圈對n以內的數進行判斷
結束迴圈後判斷計數變數為奇數還是偶數
再輸入即可。
**如下:
#include#includeusing namespace std;
#define maxn 100000
int a[maxn];
int main()
if(cnt%2==0)cout << 0 << endl;
elsecout << 1 << endl;
}return0;
}
還有1個類似的問題:
n盞燈,第乙個人把所有的燈開啟,第n個按下所有編號為n的倍數的開關(其中關掉的燈將被開啟,開著的燈將被關閉)。共k個人,問最後有哪些燈開著。輸入n和k,
k小於等於n小於等於1000
**如下:
#include#include#includeusing namespacestd;
#define maxn1010
int a[maxn];
int main()
}for (int i = 1; i <= n; i++)
}cout << '\n';
return 0;
}
開關燈問題
描述 一條長廊裡依次裝有n 1 n 65535 盞電燈,從頭到尾編號1 2 3 n 1 n。每盞電燈由乙個拉線開關控制。開始,電燈全部關著。有n個學生從長廊穿過。第乙個學生把號碼凡是1的倍數的電燈的開關拉一下 接著第二個學生把號碼凡是2的倍數的電燈的開關拉一下 接著第三個學生把號碼凡是3的倍數的電燈...
OJ開關燈問題
將n個燈泡編成n號,即1,2,3,n。現有n個人去拉開關,第乙個人把1的倍數的燈號開關都拉一下,第二個人把2的倍數的燈號都拉一下,第三個人把3的倍數的燈號都拉一下,直到第n個人將第n號燈泡拉一下。假定開始時,燈泡全不亮,請問 這n個人全拉完後,有多少個燈泡是亮的?輸入乙個整數n 1 n 100000...
開關燈問題 BulbSwitch
2018 06 17 11 54 51 開關電燈問題是乙個比較經典的趣味數學題,本文中主要介紹其中的一些常見情況。一 bulb switch 問題描述 問題求解 初始狀態 off,off,off,off.step 1 on,on,on,on step 2 on,off,on,對於第 i 盞燈,其在s...