数据结构--约瑟夫问题
来源:互联网 发布:centos挂载u盘 fat32 编辑:程序博客网 时间:2024/06/05 05:19
约瑟夫问题
(上课结束,大家听说第一周没有编程题目,立刻就被鄙视了,为了纠正这个错误,咱们本周就来做点简单题目。本题要求用循环链表实现)
约瑟夫问题是一个经典的问题。已知n个人(不妨分别以编号1,2,3,…,n 代表 )围坐在一张圆桌周围,从编号为 k 的人开始,从1开始顺时针报数1, 2, 3, …,顺时针数到m 的那个人,出列并输出。然后从出列的下一个人开始,从1开始继续顺时针报数,数到m的那个人,出列并输出,…依此重复下去,直到圆桌周围的人全部出列。
输入:n, k, m
输出:按照出列的顺序依次输出出列人的编号,编号中间相隔一个空格,每10个编号为一行。
非法输入的对应输出如下
a)
输入::n、k、m任一个小于1
输出:n,m,k must bigger than 0.
b)
输入:k>n
输出:k should not bigger than n.
例:
输入:9,3,2
输出:4 6 8 1 3 7 2 9 5
http://online.bit.edu.cn/moodle/mod/programming/view.php?id=65676
约瑟夫问题,简单循环链表应用,回忆一下链表就好。
#include<stdio.h>#include<string.h>#include<stdlib.h>const int N = 1000;int m, n, i, j, k;typedef struct people{ int id; people *next;}people;people head;void creat(people *head){ people *p, *q, *end; p = (people*)malloc(sizeof(people)); p->id = n; head->next = p; p->next = head; end = p; for(int i = n - 1; i >= 1; i--) { q = p; p = (people*)malloc(sizeof(people)); p->next = q; head->next = p; p->id = i; } end->next = p;}void dele(people *p, people *q){ q->next = p->next; free(p);}int main(){ while(~scanf("%d%*c%d%*c%d", &n, &k, &m)) { if (n < 1 || k < 1 || m < 1) { printf("n,m,k must bigger than 0.\n"); continue; } if (k > n) { printf("k should not bigger than n.\n"); continue; } creat(&head); people *p, *q; p = head.next; while(p->id != k) p = p->next; int cot = 1; for(i = 1; i <= n; i++) { for(j = 1; j < m; j++) { q = p; p = p->next; } if (i == n || (cot++) % 10 == 0) printf("%d\n", p->id); else if (i != n) printf("%d ", p->id); people *pq = p->next; dele(p, q); p = pq; } } return 0;}
阅读全文
0 0
- 数据结构之约瑟夫问题
- 数据结构-----约瑟夫环问题
- 数据结构:约瑟夫环问题
- [数据结构]约瑟夫环问题
- 数据结构—约瑟夫问题
- [数据结构]约瑟夫问题
- 数据结构 约瑟夫环问题
- 【数据结构基础】约瑟夫问题
- 数据结构--约瑟夫问题
- 数据结构--约瑟夫问题
- 数据结构算法问题 约瑟夫问题
- 《数据结构》“约瑟夫问题”解法征集
- 数据结构值约瑟夫环问题
- 数据结构与算法-约瑟夫问题
- 数据结构 约瑟夫环问题C++
- 数据结构与算法:约瑟夫问题
- 数据结构与算法---约瑟夫问题
- 数据结构 C语言 约瑟夫问题
- 机器学习笔记:K-Means无监督聚类算法
- maven 的一些配置和常见错误(The JAVA_HOME environment variable is not defined correctly. This environment vari)
- Android studio进行单元测试
- TLS,SSL,HTTPS with Python
- 【搜索+枚举+数学思维】洛谷P1286 两数之和
- 数据结构--约瑟夫问题
- jsp中判断,循环
- 2017.10.23一试
- I2C协议
- 初识Python
- 复选框选中改变tr整行颜色事件
- 异步FIFO设计
- 散列(hashing)
- recycleview吸顶效果源码