碰到的小问题
问题如下:
耶稣有15个门徒,其中有一个就是出卖耶稣叛徒,请用排除法找出这位叛徒:15人围坐一圈,从第一个开始报号:1,2,3,1,2,3……,凡是报到“3”就退出圈子,最后留在圈内的人就是出卖耶稣的叛徒,请找出它原来的序号。
看下这个方法:
#include "stdio.h"
void main()
{
inta[15]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
int number = 15;//人数
int count =0;//1,2,3报数
int i = 0;
while (number >1)
{
if (a[i] != 0)
{
count++;//开始报数
}
if (count == 3)
{
a[i] = 0;//后面循环剔除
count =0;//重新1,2,3报数
number--;
}
i++;
if (i == 15)
{
i = 0;
}
}
for ( i = 0; i <15; i++) {
if (a[i] != 0|| a[i] > 0) {
printf("出卖耶稣的是:%d", a[i]);
}
}
}
看了好多实现方法,就这个比较好一点,很符合我的一般思路,很好理解吧!