题解 | 约瑟夫环
约瑟夫环
https://www.nowcoder.com/practice/e417cfe32c74416ca38247f619ddb322
#include <stdio.h>
int main() {
int n,k,m;
scanf("%d %d %d",&n,&k,&m);
int arr[n];
for(int i=0;i<n;i++){
arr[i]=i;
}
int len=n;//当前剩余人数
int pos=k;//记录当前起始位置
while(len>1){
pos=(pos+m-1)%len;
for(int j=pos;j<len-1;j++){
arr[j]=arr[j+1];
}
len--;
}
printf("%d\n",arr[0]);
return 0;
}
查看10道真题和解析