題目要求
猴子選大王。輸入猴子的個數n,所有的猴子從1-n編號排成一圈,從1號猴子開始數數,數到3的倍數猴子被淘汰,最後剩下的是大王。輸出是大王的猴子的編號(提示:使用數組,每個數組元素相當於一個猴子,猴子的編號就是數組元素下標加一。)
思路
輸入猴子的總數爲a,新建數組x[a],利用for循環給數組中的元素賦初值爲1,定義留下來的猴子數爲left=a,while循環的條件爲left>1,if(x[index]==1)說明該猴子未被淘汰,繼續報數,用num來計數,當num%3 ==0的時候,說明該猴子要被淘汰,num=0;x[index]=0,left–;
當跳出while循環時,遍歷數組,看哪隻猴子的值爲1,就輸出。
實驗代碼
package shiyan4;
import java.util.Scanner;
public class shiyan4 {
public static void main(String[] args) {
System.out.println("請輸入猴子的總數");
Scanner out=new Scanner (System.in);
int a=out.nextInt();//輸入猴子的數量
out.close();
int [] x=new int [a];
for(int i=0;i<x.length;i++) {
x[i]=1;
}
int left=a;
int num=0;//報數
int index=0;//數組下標
while(left>1) {
if(x[index]==1) {
num++;//該猴子未被淘汰,繼續報數
if(num%3==0) {
num=0;
x[index]=0;
left--;
}
}
index++;
if(index==a) {
index=0;//保證首尾位相連
}
}
for(int j=0;j<x.length;j++) {
if(x[j]==1) {
System.out.println("猴王的編號爲: "+(j+1));
}
}
}
}
有問題可以私信或者評論,
java的學習還是要多注重上機操作和思考
要繼續堅持呀,
fighting