调了很久,调不出来,哪位高手帮改一下,谢谢!
来源:百度知道 编辑:UC知道 时间:2024/05/25 08:26:24
public static int N=0;
private int tar;
Boy(){N++;tar=1;}
public void SetTar(){
tar = 0;
}
public int TestTar(){
if(tar==0) return 0;
else return 1;
}
}
class Count3Test{
//class static Boy.N=0;
public static void main(String [] args){
Boy[] boy = new Boy[500];
Count3(boy);
print(boy);
}
public static void Count3(Boy[] boy){
int i = 0;
while(Boy.N>1){
int j=0;
while(j<3){
if(boy[i].TestTar()==1) j++;
i++;
i=i%500;
}
boy[i-1].SetTar();
}
}
public static void print(Boy[] boy){
int i=499;
while(i>-1){
if(boy[i].TestTar()==1) {
System.out.println("the last boy is NO:"+i+1);
break;
}
i--;
}
}
}
500个人,数到3就踢走,然后重复 直到最后一个人,问最后这个人是多少号
import java.util.*;
public class Shusantuiyi {
public static void main(String args []) {
Scanner keyboard = new Scanner(System.in);
System.out.println("你需要建立一个多少人的圈:");
int n = keyboard.nextInt();
KidCircle kc = new KidCircle(n);
int countNum = 0;
Kid k = kc.first;
while ( kc.count > 1) {
countNum ++;
if (countNum == 3) {
kc.delete(k);
countNum = 0;
}
k = k.right; }
System.out.println("最后剩下的是" + kc.first.id);
}
}
class Kid {
int id;
Kid left,right;
}
class KidCircle {
int count=0;
Kid first,last;
KidCircle(int n) {
for(int i = 0;i < n;i++) { add();
}
}
void add() {
Kid k = new Kid();
k.id = count;
if(count <= 0) {
first = k;
last = k;
k.left = k;
k.right = k;