測驗時間限制:共 45 分鐘
開始時間 :5/24 19:00
結束時間 :5/24 19:43
花費時間 :共 43 分鐘
- (A) 請寫一個程式把裡面的字串反過來。
- (B) 請寫一個程式把裡面的字串,每個單字本身做反轉,但是單字的順序不變。
testString = "flipped class room is important"
print("題目:", testString)
## 1-(A)
result = testString[::-1]
print("1-(A): ", result)
## 1-(B)
def reverse2(string):
sentence = string.split(" ")
result = ' '.join([i[::-1] for i in sentence])
return result
print("1-(B): ", reverse2(testString))
題目: flipped class room is important
1-(A): tnatropmi si moor ssalc deppilf
1-(B): deppilf ssalc moor si tnatropmi
請寫一個程式,Input 是一個數字,Output 是從 1 到這個數字,扣除掉所有 3 的倍 數以及 5 的倍數,但是需要保留同時是 3 和 5 的倍數的總數字數。
testInput = 15
def SpecialListNum(size):
intersect = int(size // 15)
three_num = int(size // 3)
five_num = int(size // 5)
return size - three_num - five_num + 2 * intersect
print(SpecialListNum(testInput))
9
房間裡有三個袋子,一個只裝鉛筆,一個只裝原子筆,第三個有鉛筆也有原子筆。 袋子是不透明的,單從袋子的外表上看不出任何差異,你不知道哪個袋子裝什麼。 除了袋子上各貼了一個標示("鉛筆"、"原子筆"、"混和"),且標示都是錯的 (e.g. 標示鉛筆的袋子可能是混和的或是只裝原子筆)。 你只能選一個袋子,拿出裡面一支筆,看是鉛筆還是原子筆,然後你要推論出這三 個袋子分別的情況。請列出你的作法,以及解釋為什麼這樣可以找到答案。
從"混合"標籤的袋子拿出一枝筆來就可以確定3個袋子的內容物。三個袋子目前可能的內容物如下:
標籤 : 真實內容物可能值
混和 : [鉛筆, 原子筆]
鉛筆 : [混合, 原子筆]
原子筆: [混合, 鉛筆]
從混合標籤的袋子取物只會有2種情況,在此我們舉「抽到物品為鉛筆的情形」為例,當在混合標籤袋中抽到鉛筆,代表混合標籤袋裝的其實是鉛筆,原子筆標籤袋此時可以經由刪去法推出它其實是混合袋,最後剩下的鉛筆標籤袋,它的內容物在其他兩個袋子結果確定的情形下,一定是裝原子筆。
當「抽到物品為原子筆」時,我們也可以經由相同思考邏輯判斷出每一袋的真實內容物
有三個人一起到迪士尼遊玩,中午肚子餓了,去餐廳點了一份現在最夯的冰雪奇緣 雙人組,要價 900 元,付錢後,服務生發現今天套餐大特價,只要 750 元,因此 服務生應該退還 150 元給這三個人,但是這位服務生一時鬼迷心竅,決定暗槓 60 元,只退了 90 元給這三個遊客。 那麼:三人各出 300 元 - 服務生還給他們一人 30 元 = 三人各出 270 元。270 元 × 3 人+ 服務生私吞的 60 元 = 810 + 60 = 870 !? 怎麼不是 900 元呢?還 有 30 元去哪了呢?請用敘述的方式,儘量清楚解釋問題出在哪裡。
題目說的 810 + 60算出來的結果是沒有意義的。
先審視一下題目情境,遊客3人每人出 300 元,每人收到找零為 30 元(遊客少繳的錢),每人實際付款270元。而服務生則是暗槓60元(遊客多繳的錢)。900元的意義是「遊客原本應該要付的錢」,所以它應該要由實際付款總和的810元(270 元 * 3 人)加上總共少繳的錢90元(30元 * 3 人)組成。題幹說的實際付款總額加上多繳的錢形成的數字沒有意義。
但照這樣說的話,暗槓的60元到底在哪裡呢?60元既然是遊客多繳的錢,所以它其實就是遊客實際繳的錢 810 元 - 應該繳的錢 750 的差額。
除了上述的思考方式,我們還可以這樣思考。
把 900 元分成實際付款的 750 元和應該歸還的 150 來看,在服務生歸還每人 30 元後。情況會變成,實際付款共750元,三人拿到找零金額共 30 * 3 = 90 元,服務生暗槓 60 元。加起來 900 元整。