猴子选大王C#题目,求指点,要求有注释

一群猴子都有编号,编号分别是1,2,3...n,这群猴子(n个)按照1到n的顺序顺时针围坐一圈,从编号为1的猴子开始顺时针报数,每数到m(m<n),则该猴子就要离开此圈,... 一群猴子都有编号,编号分别是1,2,3 ...n ,这群猴子(n个)按照1到n的顺序顺时针围坐一圈,从编号为1的猴子开始顺时针报数,每数到m(m<n),则该猴子就要离开此圈,再从下一个猴子开始数,每数到m, 则该猴子离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王 展开
 我来答
狮是搞完泪18
2013-04-19 · TA获得超过271个赞
知道小有建树答主
回答量:257
采纳率:0%
帮助的人:260万
展开全部
number就是题目中的m,返回值就是猴子的序号,代码中固定为6只猴子,呵呵,这个可以自己扩展
private IList<int> Monkeys;
private int ElectKing(int number)
{
Monkeys = new List<int>(new int[] { 1, 2, 3, 4, 5, 6 });
int nIndex = 0;
int nNumber = 0;
while (Monkeys.Count > 1)
{
//如果上一次报数的猴子是最后一只的话
if (nIndex > Monkeys.Count - 1)
{
//从第一只开始
nIndex = 0;
}
//报数
nNumber++;
//移除数到某一个数的猴子
if (nNumber == number)
{
nNumber = 0;
Monkeys.RemoveAt(nIndex);
continue;
}
//下一个猴子准备
nIndex++;
}
return Monkeys[0];
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liang541771
2013-04-19 · 超过27用户采纳过TA的回答
知道答主
回答量:113
采纳率:0%
帮助的人:50.8万
展开全部
import java.util.LinkedList;
/**
*
* @author Love yali_deng forever
*
*/
public class Yuesefu {
/**
* 约瑟夫环是一个数学的应用问题
*
* @param args
*/
private static StringBuffer removedStr = new StringBuffer("");// 记录出列的数字
public static void main(String[] args) {
long startTime = System.currentTimeMillis(); // 获取开始时间
process(5000,10,1);
System.out.println(removedStr.substring(0,removedStr.length() - 1));
long endTime = System.currentTimeMillis(); // 获取结束时间
System.out.println("程序运行时间:" + (endTime - startTime) + "ms");
}
public static void process(int n,int k,int m) {
// 构建一个list,存放人数
LinkedList<Integer> list = new LinkedList<Integer>();
for (int i = 0; i < n; i++) {
if (i + k > n) {
list.add(i + k - n);
} else {
list.add(i + k);
}
}
int count = 1;// 记录数的人数
cycleCal(list,count,m);
}
public static void cycleCal(LinkedList<Integer> list,int count,int m) {
int len = list.size();
if (len > 1) {
for (int i = 0; i < len; i++) {
if (count == m) {// 第m个时,remove
removedStr.append(list.get(i)).append(",");
list.remove(i);
len = list.size();
i--;
count = 0;
}
count++;
}
cycleCal(list,count,m);
} else {
if (len != 0) {
removedStr.append(list.get(0)).append(",");
}
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
湖北潜江高石碑
2013-04-19 · TA获得超过306个赞
知道小有建树答主
回答量:292
采纳率:0%
帮助的人:91.5万
展开全部
这压根是个算法题目
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式