有500个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出

来源:百度知道 编辑:UC知道 时间:2024/06/19 08:30:24
有500个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。用JAVA 实现

import java.util.LinkedList;

class removeNM {
public static int removeNM(int n, int m) {
LinkedList ll = new LinkedList();
for (int i = 0; i < n; i++)
ll.add(new Integer(i + 1));
System.out.println(ll);
int removed = -1;
while (ll.size() > 1) {
removed = (removed + m) % ll.size();
ll.remove(removed--);
}
return ((Integer) ll.get(0)).intValue();
}

public static void main(String[] args) {
System.out.println(removeNM(500, 3));
}
}

//利用对象和递归 (结果436)

import java.util.ArrayList;

public class T {
public static void main(String[] arg){
//人数=500,出局者在3次之后
b(500,3); //利用对象
c(500,3); //递归算法
}
//利用对象
private static void b(int count,int out) {
ArrayList<Child> l = new ArrayList<Child>()

有n个人围成一圈,顺序排号。 2:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子, 有 N 个人围成一圈参加游戏,游戏的规则是: 有M个人围成一圈,每人一个的编号(1. 有知道K28次火车(丹东到北京)硬坐车厢内的排号顺序? 13个人围成一圈,从第一个人开始顺序报号1、2、3。凡报到3者退出圈子。找出最后留在圈子的人原来的号码 n个人围成一圈,从第m个人开始顺序报号,凡报到p的人退出圈子,输出依次退出圈子的人来的序号 N个人围成一圈,甲乙之间巧有R个人的概率是多少,只考虑甲到乙顺时钟方向. 17个人围坐一圈,顺序编号为1,2,3,…,17。 10个人围成一圈,从中选出三个人,其中恰有两个人相邻,共有多少种不同选法???