1479: 猴子选大王
1.描述
n只猴子围坐成一个圈,按顺时针方向从1到n编号。然后从1号猴子开始沿顺时针方向从1开始报数,报到m的猴子出局,再从刚出局猴子的下一个位置重新开始报数,如此重复,直至剩下一个猴子,它就是大王。
输入
输入两个整数n和m,1<=m<=n<=100。
输出
输出猴王的编号
样例输入
8 3
样例输出
7
2.代码
相同题型( 约瑟夫环问题)1098: C语言程序设计教程(第三版)课后习题10.5 。1479: 猴子选大王。1497:变态杀人狂。1484:青蛙(四)。
#include<stdio.h>
#include<math.h>
int main()
{
int n,i,j=0,x,a[100]= {0},m;
scanf("%d %d",&n,&m);
x=n;
while(x>1)
{
for(i=1; i<=n; i++)
{
if(a[i]==0)
{
j++;
if(j%m==0)
{
a[i]=1;
x--;
}
}
}
}
for(i=1; i<=n; i++)
{
if(a[i]==0)
{
printf("%d",i);
}
}
return 0;
}