#include <stdio.h>
#define N 15
int main ()
{
int a[15];
for (int i=0;i<15;i++) //给门徒进行编号
{
a[i]=i+1;
}
int number = 15; //记录当前人数
int count = 0; //记录报数
i = 0;
while (number > 1) //直到一人时退出循环
{
if (a[i] != 0) //没有人被剔除掉,报数有效
{
count++;
}
if (count == 3) //当有人报数为3时,退出的人计为0,报数清零,存活人数减1
{
a[i] = 0;
count = 0;
number--;
}
i++; //记录报数的下一个人
if (i == 15) //当15人报数完毕,立即将报数人数置为第一人
{
i = 0;
}
}
for ( i = 0; i< 15; i++)
{
if (a[i] > 0) //最后剩下的报数不能置0的人即为叛徒
printf("出卖耶稣的人是第%d个门徒", a[i]);
}
return 0;
}
思路比较重要,好好想一下 |