本帖最后由 DYKJ12 于 2014-7-17 16:38 编辑
耶稣有13个门徒,其中有一个是叛徒,13人坐一圈,从第一个开始报号:1,2,3,1,2,3⋯⋯,凡是报到“3”就退出圈子,最后留下的人就是叛徒,找出它原来的序号。脑子里没有思路呀。在网上查找了一下,但是没有太懂。
#include"stdio.h"
int main()
{int a[10000]={0};
int b,c,d=0,e=0,j,s,r;
int *p;
void h(int x[]);
printf("请输入总人数:");
scanf("%d",&b);
for(c=0;c<b;c++)
a[c]=c+1;
p=a;
for(s=0;;s++)
{for(r=0,e=0;e<b;e++)
{if(*(p+e)!=0)
{j=*(p+e);
r++;
}
}
if(r==1)break;
for(c=0;c<b;c++)
{if(*(p+c)==0)continue;
d++;
if(d%3==0)
{
*(p+c)=0;
}
}
}
printf("背叛者是第%d位\n",j);
return 0;
}
|
|