#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。 
 
   if(i==3)//报到3就移除,报数人数-1。 
   { 
    a[i]=0; //把报数为3的赋值为0,用来最后排除 
    i=0; 
    num--;  
   }  
   { 
   if(num==1);//只剩下一个人时,结果出来了。 
   {   
    return a[i];   
   }       
    
   if(a[i]==num) //遍历到最后一个人, 
   { 
    if(i!=3&&a[i]!=0)  //圆圈循环报数,使下次循环第一个人报数接着前面一个人的数报。 
    { 
      num--; 
      t==i+1;  
    } 
    int test(num=count);     
    } 
   } 
    
} 
不知道这次能行了没:L |   
        
 
    
    
    
     
 
 |