#include <iostream>
using namespace std;
//int a[1001];
int main(){
int n,m,a[1001]={0},bs=1,id=1,c=0;
cin>>n>>m;
while(1){
if(bs==m){ //判断报数是否等于出局号码
a[id]=1; //第id个人的状态改为1,表示出局
cout<<id<<" "; //输出出局人的id
c++; //出具人数+1
if(c==n){ //判断出局人数是否等于总人数
break;
}
bs=0; //报数归零
}
id++; //下一个人
if(id>n){ //轮完最后一个人又到第一个人
id=1;
}
if(a[id]==0){ //判断这个人状态为未出局才能报数
bs++;
}
}
return 0;
}
2037:【例5.4】约瑟夫问题
最新推荐文章于 2023-06-01 18:45:44 发布