開燈問題
時間限制:3000?ms ?|? 內存限制:65535?KB
難度:1
- 描述
-
有n盞燈,編號為1~n,第1個人把所有燈打開,第2個人按下所有編號為2?的倍數的開關(這些燈將被關掉),第3?個人按下所有編號為3的倍數的開關(其中關掉的燈將被打開,開著的燈將被關閉),依此類推。一共有k個人,問最后有哪些燈開著?輸入:n和k,輸出開著的燈編號。k≤n≤1000
- 輸入
- 輸入一組數據:n和k 輸出
- 輸出開著的燈編號 樣例輸入
-
7 3
樣例輸出 -
1 5 6 7
import java.util.Scanner;public class Main25 {public static void main(String[] args) {Scanner input = new Scanner(System.in);int n = input.nextInt();int k = input.nextInt();int [] array = new int[n+1];for (int i = 1;i<array.length;i++) {array[i] = 0;}for (int i = 1;i<=k;i++) {for (int j = 1;j<array.length;j++) {if (j % i == 0) {if (array[j] == 0) {array[j] = 1;} else {array[j] = 0;}}}}for (int i = 1;i<array.length;i++) {if (array[i] == 1) {System.out.print(i+" ");}}System.out.println();}}
?