题目:耶稣有15个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:15人围坐一圈,从第一个开始报号:1,2,3,1,2,3……,凡是报到“3”就退出圈子,最后留在圈内的人就是出卖耶稣的叛徒,请找出它原来的序号。(C语言)
代码:
#include <stdio.h>
int main()
{
int a[15]; //定义数组
for(int i=0;i<15;i++) //给数组成员编号复值;
{
a[i]=i+1;
}
prinf("出卖耶稣的是%d\n",test(sizeof(a)));
return 0;
}
int test(int a) //利用递归。
{
int sum=15; //剩余人数。
int num=a; //需要报数的人数。
int t=1; //第一个人报的数
for(int i=t;i<num+1;i++) //int i=t主要是后面如果最后一个人报数不是3时,第一个人接着报数的号数为t。
{3
{
return a[i];
}
if(a[i]==num) //遍历到最后一个人,
{
if(i!=3) //圆圈循环报数,使下次循环第一个人报数接着前面一个人的数报。
{
t==i+1;
}
int test(num=count);
}
}
里面肯能有很多问题,我这没xcode手敲的。哪位神帮忙看下对不。心里有点顾忌啊,这题一时没想通,想了老长时间才凑合做出来。给些指导吧 |
|