SDUT OJ 约瑟夫问题——链表
来源:互联网 发布:淘宝预热商品怎么删除 编辑:程序博客网 时间:2024/06/05 04:43
约瑟夫问题
Time Limit: 1000MS Memory limit: 65536K
题目描述
n个人想玩残酷的死亡游戏,游戏规则如下:
n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。
请输出最后一个人的编号。
n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。
请输出最后一个人的编号。
输入
输入n和m值。
输出
输出胜利者的编号。
示例输入
5 3
示例输出
4
#include <stdio.h> #include <string.h> #include <stdlib.h> struct node { int data; struct node *next; }; struct node *head,*tail,*p,*q; int main() { int i,n,m; head=(struct node *)malloc(sizeof(struct node)); tail=head; scanf("%d %d",&n,&m); for(i=1;i<=n;i++) { p=(struct node *)malloc(sizeof(struct node)); p->data=i; tail->next=p; tail=p; p->next=NULL; } tail->next=head->next; p=head->next; i=1; while(n!=1) { if(i%m==0) { tail->next=p->next; free(p); p=tail->next; i=1; n--; } else { p=p->next; tail=tail->next; i++; } } printf("%d\n",tail->data); return 0; }
约瑟夫问题
Time Limit: 1000MS Memory limit: 65536K
题目描述
n个人想玩残酷的死亡游戏,游戏规则如下:
n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。
请输出最后一个人的编号。
n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。
请输出最后一个人的编号。
输入
输入n和m值。
输出
输出胜利者的编号。
示例输入
5 3
示例输出
4
0 0
- SDUT OJ 约瑟夫问题——链表
- 约瑟夫问题 (sdut oj)
- SDUT OJ 不敢死队问题——链表
- sdut.acm1197约瑟夫问题
- SDUT 1197 约瑟夫问题
- 约瑟夫问题-sdut 1197
- SDUT 1197----约瑟夫问题
- SDUT-约瑟夫问题
- SDUT 1197 约瑟夫问题
- 排序问题 (sdut oj)
- 装船问题 (sdut oj)
- oj 2746 约瑟夫问题
- 华为OJ 约瑟夫问题
- OJ【1197】 约瑟夫问题
- SDUT OJ 2892——字典树
- 不敢死队问题 (sdut oj)
- 删数问题 (sdut oj)
- 活动选择问题 (sdut oj)
- SDUT OJ 不敢死队问题——链表
- 为Visual Studio量身订制Freeglut
- scrollerview
- 同一台电脑上多个myeclipse破解的问题
- 代码审查 本地测试经验汇总
- SDUT OJ 约瑟夫问题——链表
- c语言实现循环队列
- 黑马程序员--java基础之正则表达式
- ant构建tomcat7失败
- kyeremal-最大流dinic算法模板-多路增广
- PCH文件
- Hello, everybody.
- 1、MapReduce 工作原理简介(待补充)
- 请禁用VS(C++)2013的链接器的COMDAT选项