開燈問題
描述 有n盞燈,編號為1~n,第1個人把所有燈打開,第2個人按下所有編號為2 的倍數的開關(這些燈將被關掉),第3 個人按下所有編號為3的倍數的開關(其中關掉的燈將被打開,開著的燈將被關閉),依此類推。一共有k個人,問最后有哪些燈開著?輸入:n和k,輸出開著的燈編號。k≤n≤1000 輸入 輸入一組數據:n和k 輸出 輸出開著的燈編號 樣例輸入 7 3 樣例輸出 1 5 6 7
#include <iostream>using namespace std;int main(){ int a[1000]; int n,k; cin>>n>>k; for(int i=1;i<=n;i++) { a[i]=-1; } for(int i=1;i<=k;i++) { for(int j=1;j<=n;j++) { if(j%i==0) { a[j]=(-1)*a[j]; } } } for(int i=1;i<=n;i++) { if(a[i]==1) { cout<<i<<" "; } } return 0;}新聞熱點
疑難解答