假設有n盞燈(n為不大於5000的正整數),從1到n按順序依次編號,初始時全部處於開啟狀態;有m個人(m為不大於n的正整數)也從1到m依次編號。輸入樣例第乙個人(1號)將燈全部關閉,第二個人(2號)將編號為2的倍數的燈開啟,第三個人(3號)將編號為3的倍數的燈做相反處理(即將開啟的燈關閉,將關閉的燈開啟)。依照編號遞增順序,以後的人都和3號一樣,將凡是自己編號倍數的燈做相反處理。
請問:當第m個人操作之後,哪幾盞燈是關閉的,按從小到大輸出其編號,其間用逗號間隔。
10
10
輸出樣例
1,4
,9
#include
#define l 5000
intmain()
for(
int i=
2;i<=m;i++)}
int count=0;
for(
int i=
1;i<=n;i++
)else
if(a[i]==0
&&count==1)
}return0;
}
知識說明:memset(a,0,sizeof(a)) 的作用是把陣列a清零。
為了避免輸出多餘空格,設定了乙個標誌變數first,可以表示當前要輸出的變數是否為第乙個,第乙個變數前不應該有逗號,其他變數都有。
#include
#include
using
namespace std;
const
int n=
5001
;int a[n]
;int
main()
}}
思想類似於素數的線性篩法:此題說明了素數的線性篩法 模擬開關燈
1 實驗任務 如圖4.2.1 所示,監視開關 k1 接在 p3.0 埠上 用發光二極體 l1 接在微控制器 p1.0 埠上 顯示開關狀態,如果開關合上,l1亮,開關開啟,l1熄滅。2 電路原理圖 圖4.2.1 3 系統板上硬體連線 1 把 微控制器系統 區域中的 p1.0 埠用導線連線到 八路發光二...
開關燈問題
描述 一條長廊裡依次裝有n 1 n 65535 盞電燈,從頭到尾編號1 2 3 n 1 n。每盞電燈由乙個拉線開關控制。開始,電燈全部關著。有n個學生從長廊穿過。第乙個學生把號碼凡是1的倍數的電燈的開關拉一下 接著第二個學生把號碼凡是2的倍數的電燈的開關拉一下 接著第三個學生把號碼凡是3的倍數的電燈...
開關燈問題
題目描述 有若干隻燈排成一排。所有的燈開始的時候都是關閉的,現對這些燈進行一系列的操作。在第 i次操作的時候,調整所有編號是 i的倍數的燈的狀態 原本開啟的燈將它關閉,原本關閉的將它開啟 輸入 每組測試資料佔一行,包含乙個整數 n 0 n 10 5 輸出 經過無限次操作之後,第 n隻燈的狀態 0表示...