JAVA猴子選大王問題

題目要求
猴子選大王。輸入猴子的個數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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章