「大王java」大王叫我来巡山
本篇文章给大家谈谈大王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和大王叫我来巡山的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-24,除非注明,否则均为
原创文章,转载请注明出处。