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

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