本篇筆者會從台中女中程式解題系統(Green Judge)基礎題庫(網址:http://www.tcgs.tc.edu.tw:1218/Problems?tab=tab00)中挑選題目出來說明。所挑選的題目如下:
- a014:貨比三家 (*) -- 多重/巢狀if
- a017:成績等第 (*) -- 多重/巢狀if
- a024:所有位數和 -- while 迴圈
- a025:數字倒轉 -- while 迴圈
- a032:小小綠的數學習題 (*) -- char
- a033:故障的計算機 -- 格式化輸出
- a034:距離 -- 數學函數-sqrt
- a035:位數 -- 數學函數-log10
- a041:收集冰棒棍 (**) -- 迴圈應用
- a042:13的次方 (**) -- 迴圈應用
- a043:最大公因數 -- 迴圈應用
- a044:盈數、虧數和完全數 -- 迴圈應用
- a045:質數判斷 -- 迴圈應用
- a048:數字金字塔 -- 多重迴圈
- a049:斜紋地硨 -- 多重迴圈
- a050:九九乘法表 -- 多重迴圈
底下逐一說明以上幾題筆者的解題思路。
a014:貨比三家 (*) -- 多重/巢狀if
這題很多人會使用巢狀if來解題,但也可以用迴圈方式來解:
此題用一個變數記錄目前吃了幾支冰棒(sum),一個變數紀錄目前可換的冰棒數(q),以及一個變數紀錄不換的冰棒有幾根(r),接著看q + r 是否可以繼續換冰棒,一直重複到不能換冰棒為止。
a042:13的次方 (**) -- 迴圈應用
此題要求出13 的 N 次方的十位數,這題即使使用 long long int 也會造成 overflow。那保留13的N-1次方之十位數與個位數,就可以算出十位數數字是多少了。程式碼如下:
a048:數字金字塔 -- 多重迴圈
a049:斜紋地硨 -- 多重迴圈
a049:斜紋地硨 -- 多重迴圈
這兩題題與a046、a047可用2D座標(Cartesian coordinate system)的方式來解題。這樣的解法也可以畫出如下的圖形(可參考:Python 金字塔圖案、Python 巴斯卡三角形):
a050:九九乘法表 -- 多重迴圈
常見的九九乘法表練習,須注意輸出的格式即可。
參考解答下載處:台中女中解題系統_基礎題庫.zip
此參考答案是筆者自己花時間撰寫出來的,若有疑問,歡迎透過底下方式來討論:
常見的九九乘法表練習,須注意輸出的格式即可。
參考解答下載處:台中女中解題系統_基礎題庫.zip
此參考答案是筆者自己花時間撰寫出來的,若有疑問,歡迎透過底下方式來討論:
- 雲林SONG粉絲團 https://www.facebook.com/yunlinsong/
- APCS 大學程式設計先修檢測討論社群 https://www.facebook.com/groups/taiwan.apcs/
- 個人臉書 https://www.facebook.com/liaopinglun
祝各位解題愉快!
沒有留言:
張貼留言