Raptor-选组长
1. 問題描述
有3?個課外小組:物理組,化學組和生物組。今有張、王、李、趙、陳5?名同學,已知張、王為物理組成員,張、李、趙為化學組成員,李、趙、陳為生物組成員。如果要在3?個小組中分別選出3?位組長,一位同學最多只能擔任一個小組的組長,共有種選擇方案?
2. 思路分析
我們用字母 A 代表張同學,字母 B 代表王同學,字母 C 代表李同學,字母 D 代表趙同學,字母 E 代表陳同學。把這幾位同學所對應的小組,展現在一張表中:
| A | B | |||
| A | C | D | ||
| C | D | E |
我們用字符串記錄每個小組的成員,物理組 a="AB",化學組 b="ACD",生物組 c="CDE",我們用最笨的方法來翻譯,“一位同學最多只能擔任一個小組的組長” 這句話。
我們定義一個三重循環:
外層循環 i = 1 到 2
? ? ? ? 中層循環 j = 1 到 3
? ? ? ? ? ? ? ? 內層循環 k = 1 到 3
? ? ? ? ? ? ? ? ? ? ? ? 內部判斷模塊
對于內部判斷模塊來說,假定選 a[i] 為物理組組長,b[j] 為化學組組長, c[k] 為生物組組長,那么一個同學最多只能擔任一個小組長,需要進行三個判斷:
這三個條件都要滿足,才能達到題目中 “一位同學最多只能擔任一個小組的組長” 的要求。大家可以自己試一試,如果那個條件不滿足會怎么樣。
現在核心判斷部分達成了,就可以得到如下的偽代碼了:
外層循環 i = 1 到 2
? ? ? ? 中層循環 j = 1 到 3
? ? ? ? ? ? ? ? 內層循環 k = 1 到 3
? ? ? ? ? ? ? ? ? ? ? ? 如果? a[i] != b[j],?a[i] != c[k] 和?b[j] != c[k] 同時滿足
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 組長選擇方案 + 1
本題中同時滿足的邏輯運算符為 and,通過把偽代碼翻譯成Raptor流程圖,就徹底實現題目中的目標了。
3. 流程圖
為了更好的展示每一種情況,我在流程圖中對每一種滿足題目要求的方案進行了輸出,測試結果如下。?
4. 結果
?把我們前面定義的符號意義 “字母 A 代表張同學,字母 B 代表王同學,字母 C 代表李同學,字母 D 代表趙同學,字母 E 代表陳同學” 帶進去就 OK 了。
總結
以上是生活随笔為你收集整理的Raptor-选组长的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 客户端视频问题
- 下一篇: AIX 是什么?AIX和UNIX的关系是