Problem Description
n只猴子围成一圈,顺时针方向从1到n编号。之后从1号开始顺时针方向让猴子从1,2,…,m依次报数,凡是报m的猴子,就让其出圈,取消其候选资格。然后不停地按顺时针方向逐一让报m者出圈,最后剩下一个就是猴王。
例如:n = 8, m = 3时,7是猴王。
Input Description
输入两个正整数n和m。
Output Description
按照格式“monkey king is: xx”输出猴大王。
Sample Input
8 3
Sample Output
monkey king is: 7
#include<stdio.h>
void hzxdw(int n,int m){
int a[n];
int h=1;
int bh=0;
int hz=0;
int b=0;
while(h<=n){
a[h]=1;
h++;
}
for(hz=n;hz>1;){
bh++;
if(bh>n){
bh=0;
}
if(a[bh]==1){
b++;
if(b==m){
a[bh]=0;
hz--;
b=0;
}
}}
h=1;
while(h<=n){
if(a[h]==1){
printf("monkey king is: %d",h);
}
h++;
}}
int main()
{int n,m;
scanf("%d %d",&n,&m);
hzxdw(n,m);
return 0;
}