过来的朋友们进来看一看!
从键盘上输入两整数m,n,表示n只猴子顺时针围成一圈,从第一只猴子开始,顺时针数到第m只猴子,令其离开队伍,再数到第m只猴子,再令其离开,最后剩下的一只猴子为大王,输出大王编号这个程序的NS图!!
#include <stdio.h>
/*
n --- number of MONKEY
m --- number
*/
int nth_victim(int n, int m, int s, int k)
{
int p=k*m;
while(p>n)
p=(m*(p-n)-1)/(m-1);
p=(p+s-1)%n;
if(p==0)
p=n;
return p;
}
void main()
{
int n, m, s,relust, k;
s=1;
printf("请输入猴子的只数,再输入每隔几只:");
scanf("%d%d",&n,&m);
for(k=1; k<=n; ++k)
relust=nth_victim(n, m, s, k);
printf("%d",relust);
}