用链表实现约瑟夫问题(c/C++)
2014-11-09 17:15
204 查看
约瑟夫问题:n个小孩围成一圈做游戏,给定一个数m,先从第s个小孩开始顺时针计数,每数到m,该小孩出列,然后从下一个小孩开始,数到m时
该小孩出列,如此反复,直到最后一个小孩,用链表解决约瑟夫问题
该小孩出列,如此反复,直到最后一个小孩,用链表解决约瑟夫问题
#include<iostream> using namespace std; #include<Cstring> struct LNode { int no; struct LNode *next; }; int main() { int n,m,s; cout<<"n="; cin>>n; cout<<"m="; cin>>m; cout<<"s="; cin>>s; LNode *first,*last; first=last=new LNode; first->no=1; int i,k,c; for(i=1;i<n;i++)//构造链表 { LNode *p=new LNode; p->no=i+1; last->next=p; last=p; } last->next=first;//构成环形链表 for(i=1;i<s;i++)//第s个孩子作为开始计数的小孩 { first=first->next; last=last->next; } k=n; while(k>1) { for(c=1;c<m;c++) { first=first->next; last=last->next; } last->next=first->next;//第m个孩子出列 cout<<first->no<<"\t"; delete first; first=last->next; k--; } cout<<endl<<"The winner is No"<<first->no; delete first; return 0; }
相关文章推荐
- 用单循环链表实现约瑟夫问题。
- Josephus问题(约瑟夫问题)链表的实现
- 用单链表解决约瑟夫问题 C语言实现
- C语言循环链表实现约瑟夫问题
- 使用单向循环链表实现约瑟夫问题
- 约瑟夫问题循环链表实现
- 约瑟夫问题用链表实现
- 环形链表+约瑟夫问题实现
- C++ HOJ 约瑟夫问题 的 数组、链表及STL实现
- 约瑟夫问题的链表实现
- 约瑟夫问题——链表实现
- 约瑟夫问题的单向循环链表的代码实现
- php实现单,双向链表,环形链表解决约瑟夫问题
- 约瑟夫问题(Josephus)链表实现
- 约瑟夫问题-链表实现
- 约瑟夫问题循环链表实现
- 约瑟夫问题-链表+队列实现
- 用单循环链表实现约瑟夫问题。
- 约瑟夫问题(猴子选大王) 链表实现
- 环形链表实现约瑟夫问题 java语言