// n: :耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:
//13人围坐一圈,从第一个开始报号:1,2,3,1,2,3……,凡是报到“3”就退出圈子,
//最后留在圈内的人就是出卖耶稣的叛徒,请找出它原来的序号
//
//n:输入总人数,tr:从1到tr报数
***************************/
int findtraitor(int n,int tr)
{
int i = 0,j= 0;
int m=0;
int a[n];
for(i=0;i<n;i++)
a[i] = (i+1);
int rel =0;
i=0;
while(m<n-1)
{
if(a[i]!=0)
{
j++;
}
if(j==tr)
{
a[i] =0;
j=0;
m++;
}
i++;
if(i==n)
i=0;
}
for(i=0;i<n;i++)
{
if(a[i]!=0)
{
rel = a[i];
break;
}
}
return rel;
}
多人报数问题
最新推荐文章于 2024-03-21 15:29:35 发布
422

被折叠的 条评论
为什么被折叠?



