1. 程式人生 > >16個醫生和護士的問題

16個醫生和護士的問題

src 醫院 printf span turn 技術分享 滿足 至少 .com

有這麽一道題。醫院裏的醫護人員,包括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\n",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是那個女護士。

16個醫生和護士的問題