「java猴子王」猴子吃桃java程序

博主:adminadmin 2022-12-15 13:27:05 58

本篇文章给大家谈谈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猴子王的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-15,除非注明,否则均为首码项目网原创文章,转载请注明出处。