16個醫生和護士的問題
阿新 • • 發佈:2018-09-29
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個醫生和護士的問題