/*實現(xiàn)Switch Game 關(guān)鍵算法并繪制流程圖(30分) 有 n盞燈,編號 1~n(0<n<100)。第1 個人把所有燈打開,第2個人按下所有編號為2的倍數(shù)的開關(guān)(這些燈將被關(guān)掉),第3 個人按下所有編號為 3的倍數(shù)的開關(guān)(其中關(guān)掉的燈將被打開,開著的燈將被關(guān)閉),依次類推。輸入燈數(shù)和人數(shù),輸出開著的燈的編號。 比如輸入:10 2 輸出最后亮燈的編號:1,3,5,7,9 注意:使用循環(huán)語句實現(xiàn)。? */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條經(jīng)驗 獲得超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 :對人進行遍歷,默認人數(shù)>=2
for:對燈進行遍歷
如果燈編號是人的倍數(shù),再判斷燈目前是不是關(guān)閉的(元素為0),如果是關(guān)的,則打開;反之,則關(guān)閉
添加回答
舉報
0/150
提交
取消