约瑟夫问题
2016-07-16 12:19
288 查看
/* * 说有15个教徒和15个非教徒在海上遇难,必须将一半的人投入海中,其余的人才能幸免于难。于是他们想了一个办法:30个人围成一圈,从第一个人开始报数,每数到第九个人的时候将之投入大海,如此循环直到剩下15个人为止。问:怎样的排法可以使被投入大海的都是非教徒? * * StoryMonster 2016/7/14 */ #include <iostream> using namespace std; enum {BELIEVER=0,NONBELIEVER}; int main() { unsigned short people[30] = {BELIEVER}; unsigned short surviver = 30; unsigned short index = 0; while(surviver > 15) { unsigned short count = 0; while(1) { if(people[index] == BELIEVER) { count++; if(count == 9) break; } index++; if(index == 30) index = 0; } people[index] = NONBELIEVER; surviver--; } for(index=0;index<30;index++) { if(people[index] == BELIEVER) cout<<"BELIEVER "; else cout<<"NONBELIEVER "; } cout<<endl; return 0; }
相关文章推荐
- C#约瑟夫问题解决方法
- JavaScript使用指针操作实现约瑟夫问题实例
- 约瑟夫问题
- 约瑟夫问题
- 用java解决约瑟夫问题
- Python实现约瑟夫问题
- 约瑟夫问题 三种实现方法
- 约瑟夫问题
- python 约瑟夫问题
- 丢手绢java代码即约瑟夫问题
- 约瑟夫问题的单向循环链表的代码实现
- java实现约瑟夫问题
- POJ 2800 : Joseph\'s Problem (须仔细分析)
- 约瑟夫问题
- POJ-2746:约瑟夫问题(Java版)
- 约瑟夫问题的解法集锦
- hihoCoder 1296 约瑟夫问题
- 约瑟夫问题(Josephus Problem)3:谁最后一个出列
- 约瑟夫问题(Josephus Problem)4:第k个出列的人是谁
- 约瑟夫问题-函数功能分解