医生和护士 一个智力题

有这么一道题。医院里的医护人员,包括A在内,总共有16名医生和护士。下面讲到的人员情况,无论是否把A计算在内,都

不会有任何变化。在这些医护人员中:护士多于医生;男医生多于男护士;男护士多于女护士;至少有一位女医生。那么,请问A的性别和职务是什么?

设男医生个数为m1,男护士个数为m2,女医生个数为w1,女护士个数为w2

若不把A算在16名医生和护士里面,则需要如下条件同时满足:

可以用for循环枚举m1 m2 w1 w2,代码如下:

int main(void)
{

    int m1; //nanyisheng
    int m2;//nanhushi
    int w1;//nvyisheng
    int w2;//nvhushi

    for (m1 = 1; m1 < 15; m1++)
    {
        for (m2 = 1; m2 < 15; m2++)
        {
            for (w1 = 1; w1 < 15; w1++)
            {
                for (w2 = 1; w2 < 15; w2++)
                {
                    if (m2 + w2 > m1 + w1)
                    {
                        if (m1 > m2)
                        {
                            if (m2 > w2)
                            {
                                if (w1 >= 1)
                                {
                                    if (m1 + m2 + w1 + w2 == 15)
                                    {
                                        printf("m1=%d m2=%d w1=%d w2=%d
",m1,m2,w1,w2);
                                    }
                                }
                            }
                        }
                    }
                }
            }

        }
    }
    
    return 1;
}

输出结果是:

意思是若不把A算在16个医护人员里面,满足条件的人员配比是:

男医生:6 男护士:5 女医生:1 女护士3

若把A算在16个医护人员里面,则需要如下条件同时满足:

代码还用上面那个,只需要把printf里面的15改成16就可以了。

输出的结果是:

意思是,若把A算在16名医护人员在内,满足条件的人员配比是:

男医生:6 男护士:5 女医生1:女护士4

*********************************************************************************************************************************************

对比两次结果:

男医生:6 男护士:5 女医生:1 女护士3

男医生:6 男护士:5 女医生:1 女护士4

所以多出的那个人就是女护士,也就是说A是那个女护士。

原文地址:https://www.cnblogs.com/yfish/p/9721562.html