/*實現Switch Game 關鍵算法并繪制流程圖(30分) 有 n盞燈,編號 1~n(0<n<100)。第1 個人把所有燈打開,第2個人按下所有編號為2的倍數的開關(這些燈將被關掉),第3 個人按下所有編號為 3的倍數的開關(其中關掉的燈將被打開,開著的燈將被關閉),依次類推。輸入燈數和人數,輸出開著的燈的編號。 比如輸入:10 2 輸出最后亮燈的編號:1,3,5,7,9 注意:使用循環語句實現。? */package Nianxi;import java.util.Scanner;public class Ti_2 {?public static void main(String[] args) {??Scanner input=new Scanner(System.in);??int d=input.nextInt();??int r=input.nextInt();??int j=2;??int num[]=new int[100];??for(int i=1;i<=d;i++){?????????num[i]=i;??}??while (j<=r) {???????for(int i=j;i<=d;i++){????????????if(i%j==0){?????????????????if(num[i]!=0){??????????????????????????num[i]=0;?????????????????}else{??????????????????????????num[i]=i;?????????????????}?????????????}???????}???j++;??}??for (int i=1;i<=d;i++){????????????? ?if (num[i]!=0){????????????????? System.out.print(num[i]+",");????????????? }??? }???? }}
1 回答
已采納

EnchantF
TA貢獻19條經驗 獲得超4個贊
? while (j<=r) {
???????for(int i=j;i<=d;i++){
????????????if(i%j==0){
?????????????????if(num[i]!=0){
??????????????????????????num[i]=0;
?????????????????}else{
??????????????????????????num[i]=i;
?????????????????}
?????????????}
???????}
???j++;
??}
while :對人進行遍歷,默認人數>=2
for:對燈進行遍歷
如果燈編號是人的倍數,再判斷燈目前是不是關閉的(元素為0),如果是關的,則打開;反之,則關閉
添加回答
舉報
0/150
提交
取消