#include <stdlib.h>
#include <stdio.h>
int flag[305];
void init(){
for(int index=0;index<305;index++){
flag[index]=0;
}
}
int main(){
int n,m;
scanf("%d",&n);
scanf("%d",&m);
while(n!=0&&m!=0){
int index=-1;
int count=0;
init();
for(int i=1;i<n;i++){
count=0;
while(count!=m){//减一个
index=(index+1)%n;//这里是对n取模,不是对m取模
if(flag[index]==0){
count++;
if(count==m){
flag[index]=1;
}
}
}
}
for(int j=0;j<n;j++){
if(flag[j]==0){
printf("%d\n",j+1);
break;
}
}
scanf("%d",&n);
scanf("%d",&m);
}
return 0;
}
oj 2746 约瑟夫问题
最新推荐文章于 2023-12-09 17:25:15 发布