耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3„„,凡是报到“3”就退出圈子,最后留在圈内的人就是出卖耶稣的叛徒,请找出它原来的序号。
#include <stdio.h>
int main()
{
int i,k,m,n,num[13];
int *p;
scanf("%d",&n);
printf("n = %d\n",n);
p =num;
for(i=0;i<n;i++)
*p++=i;
p=num;
for(i=0;i<n;i++)
printf("num[%d]=%d\n",i,*(p+i));
i=0;
m=0;
k=0;
p=num;
while(m<n-1)
{
if(*(p+i)!=0)
k++;
if(k==3)
{
*(p+i)=0;
printf("*(p+%d)=%d\n",i,*(p+i));
k=0;
m++;
}
i++;
if(i == n)
i=0;
}
while(*p==0)
p++;
printf("the last one:%d\n",*p);
return 0;
}