/*
* 10、 耶稣有15个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:15人围坐一圈,从第一个开始报号:1,2,3,1,2,3……,凡是* 报到“3”就退出圈子,最后留在圈内的人就是出卖耶稣的叛徒,请找出它原来的序号。
*/
#include <stdio.h>
int main(int argc, const char * argv[])
{
int person[15] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int count = 1;
int i = 0;
int temp = 0;
while(i < 15)
{
if((count % 3 == 0 )&&(person[i] != 0))
{
person[i] = 0;
i++;
count++;
}
else if(count % 3 != 0)
{
i++;
count++;
}
else if(person[i] == 0)
i++;
if(i == 15)
i -= 15;
for(int k = 0;k < 15;k++)
{
if(person[k] == 0)
temp++;
printf("%d",temp);
}
if(temp == 14)
break;
}
for(int j = 0;j < 15; j++)
if(person[j] != 0)
printf("叛徒的序号为:%d",j);
return 0;
}
|
|