约瑟夫环问题的数组实现
2011-03-25 17:25
211 查看
已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
例如:n = 9, k = 1, m = 5
【解答】
出局人的顺序为5, 1, 7, 4, 3, 6, 9, 2, 8。
以上摘录自百度百科
例如:n = 9, k = 1, m = 5
【解答】
出局人的顺序为5, 1, 7, 4, 3, 6, 9, 2, 8。
以上摘录自百度百科
/// <summary> /// 约瑟夫环 /// </summary> /// <param name="n">总数</param> /// <param name="m">开始位置</param> /// <param name="k">符合条件的数</param> /// <returns></returns> public void Josehp(int n, int m, int k) { //参数判断 是否异常 int[] array = new int ; for (int i = 0; i < n; i++) { array[i] = i + 1; } int count = 0; int number = n; while (number > 1) { for (int i = 0; i < n; i++) { if (m != 1) { i = m - 1; m = 1; } if (array[i] == 0) continue; count++; if (count == k) { array[i] = 0; count = 0; number--; } } } for (int i = 0; i < n; i++) { if (array[i] != 0) { Console.WriteLine("the result is:{0}", array[i]); } } }
相关文章推荐
- 约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
- 约瑟夫环问题(c语言数组实现)
- C语言,数组实现约瑟夫环问题(两种方法)
- 约瑟夫环问题(数组法)c语言实现
- 用数组和链表实现约瑟夫环问题
- 约瑟夫环问题的数组实现
- 用数组实现约瑟夫环问题
- C语言用数组1. 简单约瑟夫环问题: N个人,编号从1~N围成一圈,输入一个数T,从1号开始报数,报到T的人出圈;下一人又从1开始报数,下一个报到T的人出圈,输出出圈顺序。 考虑问实现约瑟夫环问题
- 约瑟夫环问题——初步了解+数组实现
- 约瑟夫环问题的 PHP 实现--使用 PHP 数组内部指针操作函数
- 约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
- 约瑟夫环问题的两种实现[链表+数组]
- 约瑟夫环问题(数组实现)
- 约瑟夫环问题(不带头结点单循环链表实现和数组实现)
- python中使用queue实现约瑟夫环(约瑟夫问题)求解
- 约瑟夫环--数组实现
- 约瑟夫环问题-Java数组解决
- List的All方法使用问题:我用List1的All方法来确保List1的所有每个数组元素中是否包含Arr1中的任意元素,这个部分很难实现。 因为,没有一个数组中是否包含另一个数组中的任意元素这个功能
- 问题:利用输入输出流重载实现一个整数数组的输入和输出。 要求:输入一个数组大小 及 所有元素的值,排序后输出该数组的所有元素。
- 算法导论 4.1-5 最大子数组问题 线性时间算法 C++简单实现