码迷,mamicode.com
首页 > 编程语言 > 详细

C语言必会面试题(3、耶稣有13个门徒,当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个開始报号:1,2,3,1,2,3...。凡是报到“3”就退出圈子,...)

时间:2017-05-18 18:46:35      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:mil   试题   while   pre   content   printf   序号   style   ==   

3、耶稣有13个门徒。当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个開始报号:1。2,3。1,2,3...。

凡是报到“3”就退出圈子。最后留在圈子内的人就是出卖耶稣的叛徒。请找出它原来的序号。

int a[13] = {1,2,3,4,5,6,7,8,9,10,11,12,13};
    int number = 13;//记录当前人数
    int count = 0;//1,2,3报数
    int i = 0;
    while (number > 1) {
        if (a[i] != 0) {
            count++;
        }
        if (count == 3) {
            a[i] = 0;//剔除的人
            count = 0;
            number--;
        }
        i++;
        if (i == 13) {
            i = 0;
        }
      }
    for ( i = 0; i < 13; i++) {
        if (a[i] > 0) {
            printf("%d", a[i]);
        }
    }


C语言必会面试题(3、耶稣有13个门徒,当中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个開始报号:1,2,3,1,2,3...。凡是报到“3”就退出圈子,...)

标签:mil   试题   while   pre   content   printf   序号   style   ==   

原文地址:http://www.cnblogs.com/yfceshi/p/6874844.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!