耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈,从第一个开始报号:1,2,3,1,2,3...。凡是报到“3”就退出圈子,最后留在圈子内的人就是出卖耶稣的叛徒。

    int _person[13] = {0};
    int _flag = 0;         // 用来标记1,2,3
    int _over = 0;         // 13个人,如果有12个人被标记为3,那么叛徒也就找出来了,游戏也就结束了
    
    for (int i = 0; i < 13; i++) {
        _person[i] = arc4random()%901+101;
    }
    
    for (int i = 0; _over < 13 - 1; i++) {
        if (i > 12) {      // 13个人,数组下表最大是12,如果超过12就标记为0重新开始
            i = 0;
        }
        if (_person[i] !=0 ) {    // 这里是利用下面,将数到3的人重置为0,如果不是0,那么标记就+1
            _flag++;
        }
        if (_flag == 3) {         // 数到3的人标记为0,游戏结束标记也就+1
            _flag = 0;
            _person[i] = 0;
            _over++;
        }
        
    }
    
    for (int i = 0; i < 13; i++) {     // 没被标记为0的人,就是叛徒了
        if (_person[i] != 0) {
            printf("出卖耶稣的叛徒是%d号叫%d的家伙",i+1,_person[i]);
        }
    }


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值