「java猴子王」猴子吃桃java程序
本篇文章给大家谈谈java猴子王,以及猴子吃桃java程序对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java解决猴子选大王问题
import java.util.LinkedList;
import java.util.List;
public class Program {
/**
* @param args
*/
public static void main(String[] args) {
int N = 5;
ListMonkey monkeys = new LinkedListMonkey();
ListMonkey newMonkeys = new LinkedListMonkey();
//初始化猴子
for(int i = 0; i 17; i++){
monkeys.add(new Monkey(i));
}
newMonkeys.addAll(monkeys);
int index = 0;
while (true)
{
if (monkeys.get(index).numberOff() == N)//报数数到N
{
monkeys.remove(index);
Monkey.n = 1;
}
index++;
if (index = monkeys.size())
index = 0;
if (monkeys.size() == 1)//猴子只剩一个
break;
}
//查找当王的猴子原来的位置
for(int i = 0; i newMonkeys.size(); i++){
if(monkeys.get(0).getID() == newMonkeys.get(i).getID()){
System.out.println(i);
break;
}
}
}
}
class Monkey{
public static int n = 1;
private int id;
public Monkey(int id){
this.id = id;
}
public int getID(){
return id;
}
public int numberOff(){
int num = n;
n++;
return num;
}
}
会的都来吧 ,猴子选大王java实现
只用数组的话,要多用一个数组倒腾数据,算法如下,调试通过:
public class MonkeyKing
{
public static void main(String[] args)
{
final int m=5;
int[] monkey;
//这个数组用来安置第一轮报数过后过关的猴子
int[] mon=new int[m];
//猴子围成圈报数,每轮报数过后,报数的基准会发生变化,这个变量用来存放基准偏移量
int token=0;
//满足条件的猴王候选人数
int candidate=m;
monkey=new int[candidate];
//为最初参选的猴子编号
for(int i=0;icandidate;i++)
{monkey[i]=i+1;}
//没有选出猴王之前,进行的操作
while(candidate1)
{
for(int i=0;icandidate;i++)
{
//报数为3的猴子编号一律为0
if((i+token)%3==2){monkey[i]=0;}
//报数结束一轮后,计算下一轮报数基准的偏移量
if(i==candidate-1)
{
//存放一轮结束后产生的基准编译
int k=0;
switch((candidate)%3)
{
case 0:k=0;break;
case 1:k=1;break;
case 2:k=2;break;
}
token +=k;
}
}
//存放每轮被淘汰的猴子的数量
int count=0;
//过关猴子数组的初始索引
int m_index=0;
for(int i=0;icandidate;i++)
{
if(monkey[i]!=0)
{
mon[m_index]=monkey[i];
m_index++;
}
else
{
count++;
}
}
//每轮过关的猴王候选
candidate -= count;
//重建猴王候选数组,进入下一轮报数
monkey= new int[candidate];
for(int i=0;icandidate;i++)
{
monkey[i]=mon[i];
}
}
System.out.println("猴王的编号为:"+monkey[0]);
}
}
JAVA要求使用LinkedList集合帮我做一下猴子选大王的题目,谢谢了。
import java.util.LinkedList;
public class MonkeyKing{
public static void main(String[] args) {
LinkedListInteger monkeys = new LinkedListInteger(){{
for (int i = 1; i = 100; i++)
add(i);
}
};
int count = 100;
int i = -1;
while (count 1){
int temp = i + 14;
if (temp = count)
temp = temp % count;
monkeys.remove(temp);
count--;
i = --temp;
}
System.out.println(monkeys.get(0));
}
}
java猴子王的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于猴子吃桃java程序、java猴子王的信息别忘了在本站进行查找喔。
发布于:2022-12-15,除非注明,否则均为
原创文章,转载请注明出处。