A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13个人围坐一圈,从第一个人开始循环报数,数到三排除,最后剩下的人就是叛徒

int people[13] = {1,2,3,4,5,6,7,8,9,10,11,12,13};
int count = 0;//用来记录报数  

int number = 13;//记录活着的人数  

int i = 0;//记录第几个人正在报数

while (number > 1) {      

if (people[i] != 0) {         

count++; //如果a[i ]没有被剔除掉,报数有效     

} if (count == 3) {        

    people[i] = 0;//剔除掉,      

     count = 0;//报数清零         

   number--;//存活人数减一      

  }     

   i++;//记录报数的下一个人     

   if (i == 13) {         

   i = 0;// 当超出范围时,立即将报数人数置为第一人     

   }   

}    for (int i = 0; i < 13; i++) {      

  if (people[i] > 0) {         

  printf("叛徒是第%d人 ", people[i]);     

   }  

  }

5 个回复

倒序浏览
这个是面试题吗?这道题目在基础测试中见过
回复 使用道具 举报
题目要求都说不清,确定是面试题???
回复 使用道具 举报
好流弊的样子,表示看不懂
回复 使用道具 举报
表示看不懂            
回复 使用道具 举报
表示题目都没看懂
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马