猴子选大王java

来源:百度知道 编辑:UC知道 时间:2024/05/09 10:51:33
package com.sun;

import java.util.ArrayList;

public class Number extends Monkey{
public static void main(String[] args) {
Number n = new Number();
n.count();
}
}
class Monkey{
private int id ;
private int num ;
public void count()
{
ArrayList al = new ArrayList();
for (int i = 0; i < 3; i++) {
Monkey mon = new Monkey();
mon.id = i;
mon.num = 1;
al.add(mon);
}

int i = 0;
while (al.size() != 1) {

if (((Monkey)al.get(i)).num % 3 == 0) {
al.remove(i);

}
i++;
num++;
if (i >= al.size()) {
i = 0;
}

((Monkey)al.get(i)).num = num;

}
System.out.println(((Monkey)al.get(0)).id);
}
}
哪位给改进改进

既然是use的关系...为什么要用Number继承Monkey呢...

楼主对约瑟夫环问题理解的不大准确..

下为实现代码...

import java.util.ArrayList;

public class MonkeyKing {
public static void main(String[] args) {
Monkey n = new Monkey();
n.count();
}
}

class Monkey {
private int id;

public void count() {
ArrayList<Monkey> al = new ArrayList<Monkey>();
for (int i = 0; i < 7; i++) {
Monkey mon = new Monkey();
mon.id = i + 1;
al.add(mon);// 添加猴子
}
int i = 1;
int cur = 0;// 表示当前索引值
int size = al.size();// 当前猴子的数目
while (size != 1) {
if (cur > size - 1) {
cur = 0;
}
System.err.println(i);
if (i % 3 == 0) {
al.remove(cur);
System.err.println(al);
size = al.size();
cur--;
}
i++;
cur++;
}
System.err.println(al.get(0).id);
}