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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

#include <stdio.h>

int main(int argc, const char * argv[])
{
    int person[15] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
    int count = 1;
    int i = 0;
    int temp = 0;
    while(i < 15)
    {
        if((count % 3 == 0 )&&(person[i] != 0))
        {
            person[i] = 0;
            i++;
            count++;
        }
        else if(count % 3 != 0)
        {
            i++;
            count++;
        }
        else if(person[i] == 0)
            i++;
        if(i == 15)
            i -= 15;
        for(int k = 0;k < 15;k++)
        {
            if(person[k] == 0)
                temp++;
            printf("%d",temp);
        }
        if(temp == 14)
            break;
        
    }
    for(int j = 0;j < 15; j++)
        if(person[j] != 0)
            printf("叛徒的序号为:%d",j);
   
    return 0;
}

感激不尽

2 个回复

正序浏览
这题用链表好做
回复 使用道具 举报
有木有好心人。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马