约瑟夫问题循环链表实现
来源:互联网 发布:妙笔生花绘画软件 编辑:程序博客网 时间:2024/05/16 02:19
问题描述:
n个人围成一个圈,每个人分别标注为1、2、...、n,要求从1号从1开始报数,报到k的人出圈,接着下一个人又从1开始报数,如此循环,直到只剩最后一个人时,该人即为胜利者。例如当n=10,k=4时,依次出列的人分别为4、8、2、7、3、10,9、1、6、5,则5号位置的人为胜利者。给定n个人,请你编程计算出最后胜利者标号数。
#include<iostream>using namespace std;struct Node{int val;Node *next;Node(int v){ val = v; next = NULL; }};//约瑟夫问题void JOSEPHUS(int n, int k){Node *p = NULL; //p表示开始指针Node *current = NULL;Node *previous = NULL;for (int i = 0; i < n; ++i){if (i == 0){p = new Node(1);previous = p;continue;}current = new Node(i + 1);previous->next = current;previous = current;}previous->next = p;while (p->next != p){for (int j = 1; j < k-1; ++j){p = p->next;}cout << p->next->val << ' ';p->next = p->next->next;p = p->next;}cout << p->val << endl;cout << "Winner is " << p->val << endl;}int main(){JOSEPHUS(10, 4);return 0;}
0 0
- 单向循环链表实现约瑟夫问题
- 用循环链表实现约瑟夫问题
- 约瑟夫问题简单实现-循环链表
- C++循环链表实现约瑟夫问题
- 约瑟夫问题--循环链表实现
- 循环链表 约瑟夫环问题实现
- 约瑟夫环问题循环链表实现
- 约瑟夫问题循环链表实现
- 约瑟夫问题(循环链表实现)
- 循环链表实现约瑟夫问题
- 约瑟夫问题循环链表实现
- 循环链表实现约瑟夫问题
- 循环链表实现约瑟夫问题
- 循环链表实现约瑟夫问题
- 循环链表实现约瑟夫问题
- 循环链表实现约瑟夫问题,拉丁方阵问题
- 约瑟夫问题 循环链表实现和数字处理实现
- 约瑟夫问题-循环链表
- javascript三角函数的使用
- HTML页面加载和解析流程 (未完待续)
- win32 api 文件操作
- Spring整合Shiro做权限控制模块详细案例分析
- SSM框架整合+阿里巴巴数据库连接池
- 约瑟夫问题循环链表实现
- iOS 通过定位获取常驻后台
- UNICODE与ASCII的区别 (ajax中的escape)
- C# 静态成员和静态类
- java.lang.NoSuchFieldError错误
- php写文本
- NOIP 2015 普及组 复赛 mine 扫雷游戏
- 解决Toolbar的Icon、logo、title间距问题
- Spring Web