500个小孩一圈,数三个数,退出一人,问最后哪个小孩剩下

这个程序该怎么写啊
匿名用户    2008-10-29 22:04    

满意回答

//构造一个Child类表示孩子,id表孩子的编号,next表下一个脑险遮孩子,从而构成肆露一个链表 public class Child { int id; Child next; public Child(int i) { id=i; next=null; } } //以下院局是主要程序 public class Test2 { public static void main(String[] args) { Child first=new Child(1);//创建第一个孩子 Child c1=first; for(int i=2;i

匿名用户   2008-10-30 14:23
宝宝知道提示您:回答为网友贡献,仅供参考。

为您推荐:

其他回答

//我也来凑下热闹,呵呵~~~ 如果结果不是450,别看我的程序了 //提供了两种方法,其实是一样的,一种利用了对象,一种就是一般的算法 import java.util.ArrayList; public class T { public static void main(String[] ar...g){ a(500,3); //人数=500,出局者在3次之后 b(500,3); } //一般算法 static void b(int count,int out){ ArrayList l = new ArrayList(); int x = 0; for(int i=0; i1){ for(int i=0; i

全部展开 收起
匿名用户    2008-10-30 16:23

public class Child { public static void main(String[] s){ int[][] chl = new int; for(int i = 0;i < 500;i ++){ chl = i; chl = 1; } int number = 500; //...小孩总数 int index = 0; //小孩报数 int left = 0; //剩下小孩数 int last = 0; //最后一个小孩编号 while (left != 1) { left = 0; for (int chlNum = 0; chlNum < number; chlNum++) { if (chl != 0) { last = chlNum; index++; //如果该小孩没有被去掉,则报数+1 if(index == 3){ //报数到三为止 chl = 0; }else{ left ++; } if (index > 3) { index = 1; } }}} System.out.println("最后剩下的小孩是第 " + (last + 1) + " 号"); }} 结果是436

全部展开 收起
匿名用户    2008-10-30 11:36

这是我原来写的八小孩出圈问题 要换成500个小孩数三个数字 就重新初始化一下s数组 然后设置n=500 m=3就可以了 public class Jone { public static void main(String[] args) { int s[]={ 1, 2, 3, 4, 5, 6, 7...,8}; int i,j,w=0,n= 8,m=5; for(i=n;i>0;i--) { w=(w+m-1)%i; System.out.println(s); for(j=w;j

全部展开 收起
匿名用户    2008-10-30 10:50

public class Count3Quit { public static void main(String[] args) { boolean[] arr = new boolean; for(int i=0; i 1) { if(arr == true) { countNum ++; if(...countNum == 3) { countNum = 0; arr = false; leftCount --; } } index ++; if(index == arr.length) { index = 0; } } for(int i=0; i

全部展开 收起
匿名用户    2008-10-30 10:26
加载更多