“约瑟夫问题”实现代码加运行截图(ADT小组)
2014-09-30 00:31
381 查看
#include<iostream> struct people { int m; people* next; }; class game { public: game(int, int);//构造函数 void count(int);//计数函数 void Delete();//删除函数 void judgement();//裁判操作函数 private: people *p, *frist = NULL;//头指针,与当前位置指针 int lenght = 0; }; game::game(int n, int m) { frist = new people; frist->m = m + 1;//给头结点赋予标识值 frist->next = NULL; people * s, *r; s = frist; r = NULL; for (int i = 0; i < n; i++)//动态内存分配 { r = new people; r->m = m; s->next = r; r->next = NULL; s = r; lenght += 1; } r->next = frist; p = frist; } void game::count(int m) { for (int i = 0; i < (m - 2);)//这里的位置指针只移动到删除位置的前一位 { if (p->m == m + 1)//为了跳过头结点的操作 { p = p->next; } else { p = p->next; i++; } } } void game::Delete()//删除 { people *s; s = p->next; p->next = s->next; delete s; lenght -= 1; } void game::judgement()//裁判操作 { for (; 1 == 1;) { count(frist->next->m);//开始计数 Delete();//删除 if (lenght == 1)//判断是否只剩一个人 { break; } }//重新计数 using std::cout; using std::endl; cout << "优胜者已经产生" << endl; } int main() { int n, m; using std::cout; using std::endl; cout << "请输入人数n,与密码m" << endl; using std::cin; cin >> n >> m; game s(n, m); s.judgement(); system("pause"); return 0; }
运行截图(比赛进行中):
运行截图(比赛结束):
相关文章推荐
- 约瑟夫问题解决及实现代码(C语言版)
- 约瑟夫问题及其实现代码
- 最大子数组问题-c++代码实现及运行实例结果
- 练习 2017-08-13 获取进程数据-编译和运行Java代码 问题在截图上 留待解决。
- 最大子数组问题-c++代码实现及运行实例结果
- Java中实现系统托盘功能(代码全贴,附加运行截图)
- “约瑟夫问题”实现代码
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果
- C++中基本数据类型字节数及取值范围,下面有实现查看代码和运行截图
- 约瑟夫环问题的解释及代码实现
- 约瑟夫问题分析及代码实现
- 最大子数组问题-c++代码实现及运行实例结果
- “约瑟夫问题”实现代码
- 约瑟夫问题总结及代码实现
- 约瑟夫问题java语言实现代码
- 自己用java代码实现的:“约瑟夫”问题
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-c++代码实现及运行实例结果