//耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3...凡是报到'3'就退出圈子,最后留在圈子内的人就是出卖耶稣的叛徒.请找出它原来的序号// int array[13]={1,2,3,4,5,6,7,8,9,10,11,12,13};//模拟报数,0表示未退出圈子,1表示退出圈子
// int numbers=13;//表示剩余人数
// int count = 0;//表示报数
// int i =0;// 表示下标的循环变量
// while (numbers > 1) {
// if (array[i]!=0) {//如果当前得到的数组元素不为0,表示没有退出圈子,则count++表示报数
// count++;
// }
// if (count == 3) {
// printf("%d号退出圈子\n",array[i]);
// array[i] = 0;//表示当前报数的人报的数为3,则通过数组元素赋值为0来表示他退出圈子
// count = 0;//报数归0
// numbers --;//表示退出圈子后剩余的人数
// }
// i++;
// i = i %13;// 如果i为13时,让i重新从0开始
// }
// for ( int i =0; i < 13; i++) {
// if (array[i] > 0) {
// printf("%d号是叛徒",array[i]);
// }
// }
转载于:https://blog.51cto.com/9178487/1440528