「大王java」大王叫我来巡山

博主:adminadmin 2022-11-24 00:18:05 60

本篇文章给大家谈谈大王java,以及大王叫我来巡山对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

会的都来吧 ,猴子选大王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解决猴子选大王问题

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扑克牌52张排序程序如下,如何改变为54张(加上大王和小王)

修改的部分我加了#########你看一下吧

//这个初始化方法

publicvoidinitcard()

{

String num[]={"A","2","3","4","5","6","7","8","9","10","J","Q","K"};

String suit[]={"方块","梅花","红桃","黑桃"};

String bigwang,xiaowang;

card = newCardClass[54];//#######初始化54张而不是52张

for(inti=0;i52;i++)

{

card[i] = newCardClass(num[i%13],suit[i/13]);

}

car[52] = new CardClass("大王","");//#####初始化大王

car[53] = new CardClass("小王","");//######初始化小王

}

publicvoidshufflecard()//洗牌

{

Random rd = newRandom();

for(inti=0;i54;i++) //##########由52变为54

{

int j = rd.nextInt(54);//生成随机数 #######52变54

CardClass temp = card[i];//交换

card[i]=card[j];

card[j]=temp;

}

}

publicvoiddealcard()//发牌

{

for(inti=0;i54;i++)//##########由52变成54

{

if(i%12==0) System.out.println("\n");

System.out.print(card[i]);

}

}

关于大王java和大王叫我来巡山的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

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