约瑟夫问题
来源:互联网 发布:淘宝卖家盗用我的图片 编辑:程序博客网 时间:2024/06/06 07:41
Problem Description
n个人想玩残酷的死亡游戏,游戏规则如下:
n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。
请输出最后一个人的编号。
n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。
请输出最后一个人的编号。
Input
输入n和m值。
Output
输出胜利者的编号。
Example Input
5 3
Example Output
4
Hint
#include<stdio.h>#include<malloc.h>#include<stdlib.h>struct node{ int hao; struct node *next;};struct node *creat (int n){ int i; struct node *p,*tail,*head; p=(struct node *)malloc (sizeof(struct node)); p->hao=1; p->next=NULL; head=p; tail=p; for(i=2;i<=n;i++) { p=(struct node *)malloc (sizeof(struct node)); p->hao=i; tail->next=p; tail=p; p->next=NULL; } tail->next=head; return head;}int sel(struct node *head,int m,int n){ int num=0,count=0; struct node *p,*q; q=head; while(q->next!=head) q=q->next; while(count<n-1) { p=q->next; num++; if(num%m==0) { q->next=p->next; free(p); count++; } else q=p; } return q->hao;}int main(){ int n,m; struct node *head; scanf("%d%d",&n,&m); head=creat(n); printf("%d",sel(head,m,n)); return 0;}
0 0
- 约瑟夫问题、约瑟夫环
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 约瑟夫问题
- 如何查看 Apache 模块是否正常
- 安卓中的Model-View-Presenter模式介绍
- Ajax请求GET/POST方法的封装
- vmvare中对Linux克隆后网卡的问题
- linux常用查看硬件设备信息命令
- 约瑟夫问题
- Struts学习之day01
- css3 选择器
- yii2模型之增删改查
- codeblocks换编译器
- OpenCv矩阵元素的访问技巧
- JavaScript公共验证函数
- STL容器知识总结 [转载]
- 递归的函数