#include<iostream>
using namespace std;
/*
size个人围成一圈,从start开始报数,报到m的出列
*/
void fun(int *a,int size,int start,int m)
{
if(m<=0){
cerr << "invalid input" << endl;
return;
}
int k=0;
for(int i=start-1;i<size-1;++i){
for(int j=0;j<m;j++){
while(a[k%size]==-1){
k++;
}
if(j==m-1){
a[k%size]=-1;
}
k++;
}
}
for(int i=0;i<size;i++){
if(a[i]!=-1)
cout << a[i] << endl;
}
}
int main()
{
const int size = 9;
int m = 5;
int a[size];
for(int i=0;i<size;++i)
a[i]=i+1;
fun(a,size,1,m);
}
8
约瑟夫环
原创
©著作权归作者所有:来自51CTO博客作者xiangjie256的原创作品,请联系作者获取转载授权,否则将追究法律责任
写一个基于数组的实现
上一篇:线性表-顺序表
下一篇:模板成员函数不能是虚的
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【Phaser游戏开发】动画效果-舞动的蝴蝶环
舞动的蝴蝶圆环,蝴蝶群飞舞
Game Phaser 舞动的蝴蝶圆环 蝴蝶群飞舞