经典算法<二>约瑟夫问题 C++实现
来源:互联网 发布:pk10北京赛车开奖源码 编辑:程序博客网 时间:2024/05/22 14:00
/** File name : Josephus.cpp* Function : 约瑟夫问题 C++实现* Created on : 2016年5月11日* Author : beijiwei@qq.com* Copyright : 欢迎大家和我一起交流学习,转载请保持源文件的完整性。任何单位和个人不经本人允许不得用于商业用途* Input : ABCD##E##F##GHI##J##K##**/#include <cstdio>#include <iostream>using namespace std;#define MAX 10typedef struct{int order;int dead;}People;typedef struct {People array[MAX];int length;// cirrent sizeint alive;}Circle;int Circle_run(Circle &V,int total,int start,int interval);int main(int argc, char** argv){int N,K,M;cout << "Please input total man number,begin,interval:"<<endl;cin >> N >> K >> M;Circle one;cout << "The last live people is :" << Circle_run(one, N, K, M) << endl;return 0;}int Circle_run(Circle &V, int total, int start, int interval){int i = 0;int count = 1;if (total > MAX) {cout << "error, array will overflow." << endl;}for (i = 0; i < total; i++) {V.array[i].dead = 0;V.array[i].order = i;}V.length = i;V.alive = total;while (V.alive>1) {if (start == V.length)start = 0;if (count == interval && V.array[start].dead==0)// kill the alive man{V.array[start].dead = 1;V.alive--;count = 1;start++;continue;}if (V.array[start].dead == 1) {// jump deadstart++;continue;}count++;start++;}for (int i = 0; i < total; i++) {if(V.array[i].dead ==0)return i;}}
0 0
- 经典算法<二>约瑟夫问题 C++实现
- 经典算法之约瑟夫问题
- 经典算法问题之约瑟夫问题
- 经典算法问题的java实现<二>
- 经典算法之约瑟夫环问题
- Java实现约瑟夫算法问题
- php实现约瑟夫环经典问题
- C语言经典算法100例-069-简单约瑟夫环问题
- 算法笔试题(二):约瑟夫环问题
- 【经典问题】约瑟夫问题
- 用链表实现约瑟夫问题(c/C++)
- 【经典算法】约瑟夫环
- C语言解决约瑟夫问题算法
- 约瑟夫环形算法 用c语言实现
- 约瑟夫算法的C语言实现
- 约瑟夫问题-O(n)算法实现
- 算法实现——约瑟夫问题
- 约瑟夫环问题简单算法实现
- 显示和隐式跳转
- PHP获取URL
- C语言学习(2)-getchar(), _getche()和_getch()
- 数据传递intent,Bundle
- 手势(UIGestureXXX)使用详解
- 经典算法<二>约瑟夫问题 C++实现
- 【BZOJ4429】[Nwerc2015] Elementary Math小学数学【二分图匹配】
- 创建第二个activity
- java web 文件下载
- 处理多线程,断点续传,下载进度条等问题,xUtils框架
- 内容提供者事列补充,URI携带数据
- #ifdef和#if defined的区别
- 内容提供者事列描述的补充,当出现数据库多条时处理
- BZOJ4561: [JLoi2016]圆的异或并