约瑟夫环问题
来源:互联网 发布:单例模式 java enum 编辑:程序博客网 时间:2024/05/29 08:48
约瑟夫环问题
题目描述:设有编号为1,2,……,n的n(n>0)个人围成一个圈,从第1个人开始报数,报到m时停止报数,报m的人出圈,再从他的下一个人起重新报数,报到m时停止报数,报m的出圈,……,如此下去,直到所有人全部出圈为止。当任意给定n和m后,设计算法求n个人出圈的次序。
我的代码:
#include <iostream>using namespace std;void test_function(int n, int m){ bool data[n]; for(int i=0; i<n; i++){ data[i] = false; } int global_counter=1, k=0, k_counter,n_counter=0; int i=0; while(true){ i=k; k_counter = 0; while(true){ if(!data[i]){ k=i; break; }else{ k=-1; k_counter++; } i=(i+1)%n; if(k_counter==n){ break; } } if(k!=-1){ if(global_counter%m==0){ cout<<(k+1)<<" "; data[k]=true; n_counter++; } } k=(k+1)%n; if(n_counter==n) break; global_counter++; }}int main(){ test_function(5,3); return 0;}当然,这个是数组,还可以用循环链表来实现,预计明天实现一下。
0 0
- 约瑟夫问题、约瑟夫环
- Josephus约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题(Josephus)
- 约瑟夫环问题--java
- 约瑟夫环问题 Josephus
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 求解约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- [LeetCode] Number of Islands
- nyoj 104 最大和 【压缩矩阵 DP求最大连续子序列的和】
- UVA 11090 - Going in Cycle!!(最短路`Bellman-Ford)
- 非常有用的android控件编程
- [转]python 大文件以行为单位读取方式比对
- 约瑟夫环问题
- 关于CoreData和SQLite多线程访问时的线程安全问题
- HDU 4821 String (2013长春现场赛I题) 字符串Hash
- Linux基础:如何找出你的系统所支持的最大内存
- Multiply Strings 大数相乘
- rt-thread学习笔记开篇
- jsp 分页操作的实现
- C++实现MATLAB一维数组函数findpeaks()函数求一维离散值极值(波峰波谷)
- JVM-3-JVM中的父委托机制-源码体现