求猴子选大王的C#代码

C#代码要求编程实现:1.猴子选大王问题描述:m只猴子围坐一圈,从1开始报数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。... C#代码 要求编程实现: 1.猴子选大王问题描述:m只猴子围坐一圈,从1开始报数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。 2.输入数据: 输入m,n。 3.输出形式: 按照出列顺序输出猴子的编号。 望说明思路 谢谢 展开
 我来答
暴风小凡cK
推荐于2018-04-30 · 超过59用户采纳过TA的回答
知道答主
回答量:126
采纳率:0%
帮助的人:60.2万
展开全部
这应该是约瑟夫环问题,如果c来做肯定链表最合适,C#的话,以前收藏的代码 public class Josephas //从第start人开始计数,以alter为单位循环记数出列,总人数为total public int [ ] Jose(int total, int alter, int start) { int i, j, k = 0; //count数组存储按出列顺序的数据,以当结果返回 int[] count = new int [ total+1]; //s数组存储初始数据 int[] s = new int [ total+1]; //对数组s赋初值,第一个人序号为0,第二人为1,依此下去 for (i = 0; i <total; i++) { s[i] = i; } //按出列次序依次存于数组count中 for (i = total; i >= 2; i--) { start = (start + alter - 1) % i; if (start == 0) start = i; count[k] = s[start]; k++; for (j = start + 1; j <= i; j++) s[j - 1] = s[j]; } count[k]=s[1]; //结果返回 return count; } }
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式