约瑟夫环问题
来源:互联网 发布:淘宝上好看的手机壳店 编辑:程序博客网 时间:2024/05/16 04:50
约瑟夫问题如下:已知n个人(n>=1)围坐一圆桌周围,从1开始顺序编号。从序号为1的人开始报数,顺时针数到m的那个人出列。他的下一个人又从1开始报数,数到m的那个人又出列。依此规则重复下去,直到所有人全部出列。请问最后一个出列的人的编号。
//C Version One-way circular linked list(单向循环链表)#include <stdio.h>#include <stdlib.h>typedef struct Circular_List{ int data; struct Cirular_List *next;}CList;CList* init_CList(int *num){ int i; printf("Please input the number of nodes:"); scanf("%d",num); //Circle_Queue *q=(Circle_Queue*)malloc(num*sizeof(Circle_Queue)); CList *p=(CList*)malloc(sizeof(CList)); CList *head=p; for(i=1;i<*num;++i) { //q->data=(i+1); p->data=i; p->next=(CList*)malloc(sizeof(CList)); p=p->next; } p->data=*num; p->next=head; return head;}int del_CList(CList *p, int N){ int m; int i,j; printf("Please input the m you want to delete:"); scanf("%d",&m); //while(p!=null) for(i=1;i<N;++i) { for(j=1;j<(m-1);++j) p=p->next; CList *q=p->next; p->next=q->next; printf("The dequeued one is number %d\n",q->data); free(q); //q->next=NULL; //p->next=p->next->next; //free(p->next); p=p->next; } return p->data;} int main(){ int total, last; CList *list; list=init_CList(&total); last=del_CList(list,total); printf("The last one dequeued is %d",last); return 0;}
- 约瑟夫问题、约瑟夫环
- Josephus约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题(Josephus)
- 约瑟夫环问题--java
- 约瑟夫环问题 Josephus
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 求解约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- linux共享库位置配置(LD_LIBRARY_PATH环境变量 或者 更改/etc/ld.so.conf 或者 使用-R选项)
- maven POM.xml详解
- 【转】软中断/tasklet/工作队列
- 基于SQLITE数据库的C语言编程
- 程序员该如何提高效率
- 约瑟夫环问题
- Oracle排序分页方法
- FRM-40735 ON -ERROR trigger raised unhandled exception ORA-04063
- 推荐10款非常优秀的 HTML5 开发工具
- 多种方式的oracle排序
- IE和Firefox下Div背景颜色的问题
- jsp + oracle 排序分页 高效sql语句
- C#命名规则、开发习惯和风格
- HTML系统学习之七 <CSS单位,HTML常用实体,HTML的头部,HTML事件>