数据结构之约瑟夫问题---猴子选大王
发布日期:2022-02-02 02:58:08 浏览次数:12 分类:技术文章

本文共 858 字,大约阅读时间需要 2 分钟。

题目大意:

猴子选大王。 n只猴子围成一圈,顺时针方向从1到n编号。之后从1号开始沿顺时针方向让猴子从1,2,…,m依次报数,凡报到m的猴子,都让其出圈,取消候选资格。然后不停地按顺时针方向逐一让报出m者出圈,最后剩下一个就是猴王。

代码实现:

#include 
#include
#include
using namespace std;struct monkey{ int num; monkey *next;};struct monkey *head,*tail;void creat(int nn){ int i; struct monkey *p,*q; p->num=1; p->next=NULL; head=p; q=p; for(i=2;i<=nn;i++) { p=new monkey; p->num=i; q->next=p; q=p; p->next=NULL; } tail=q; tail->next=head;}void select(int mm){ int x=0; struct monkey *p,*q; q=tail; do { p=q->next; x++; if(x%mm==0) { q->next=p->next; delete p; } else q=p; }while(q!=q->next); head=q;}int main(){ int m,n; cin>>n>>m; creat(n); select(m); cout<
num<

转载地址:https://blog.csdn.net/u010368749/article/details/19163965 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:数据结构之链表的插入
下一篇:数据结构之KMP算法---hdu2087---剪花布条

发表评论

最新留言

不错!
[***.144.177.141]2024年03月31日 09时00分05秒