网站首页 网站建设 IT知识 IT知识教程 C#约瑟夫问题解决方法

C#约瑟夫问题解决方法

2021-05-20 21:22:13

本文实例讲述了C#约瑟夫问题解决方法。分享给大家供大家参考。具体分析如下:

决约瑟夫问题描述如下:

设有n个人围坐一圈,现以某个人开始报数,数到m的人出列,接着从出列的下一个人开始重新报数,数到m的人又出列,如此下去,直到所有人都出列为止.按出列顺序输出.

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; } }

希望本文所述对大家的C#程序设计有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。 如涉及版权问题,请提交至online#300.cn邮箱联系删除。

以上产品还未完全满足我的所有需求,在下方提交我的专属需求
我的专属需求:
*手机号:
*验证码:
img
咨询报价
现在咨询
img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP