32. Divide, But Not Quite Conquer! (CPE10419, UVA10190) - CPE一顆星解答與說明
CPE一顆星49題解答 - pdf 電子檔,售價 199 元,
購買電子檔可將筆記與完整解答帶著走,
坐車、上課時皆可隨時複習,
不受網路或廣告影響,
若有需要請來信購買 greens2314@gmail.com
題目
- 判斷數字 N 是否可以持續被數字 M 整除,直到 N = 1
- N = 125 可以持續被 5 整除,過程為 125/5, 25/5, 5/5 (N=1)
- N = 30 不可以持續被 3 整除,過程 30/3, 10/3 (無法整除)
輸入說明
- 每一列有
- 數字 N
- 數字 M
輸出說明
- 判斷 N 可否被 M 整除,直到 N= 1
- 可:輸出運算過程,N 除以 M 的商數
- 不可:印出 Boring! 字串
解題技巧
- 除法
解題過程
取得輸入
- 判斷數字 m 是否為 0
- 若為 0:直接印出結果
- 題目規定的字串,因為 n 除以 1,商數都會等於 n,無法收斂至 1
- 若不為 0 :開始計算
- 宣告串列,用來儲存計算過程中的運算結果
- 使用 while 迴圈實做連續的除法
- 當數字 n 大於 1 且 n 可以被 m 整除時,持續做除法,直到 n = 1 或是 n 無法被 m 整除為止
- 例如:例如 n = 125, m = 25, 125 > 1 且 125 可以被 25 整除
- 將 n (125) 加入至串列中
- 更新 n (125) 為 n 除以 m 取商數(5 =125/25)
判斷 n 是否為 1
- n 等於 1:如果 n 能收斂到數字 1,將除法的運算過程印出
- 使用 foreach 將串列中的數字印出
- 記得將最後的 1 印出,因為當 n 更新為 n/m, 當 n/m = 1 時,就無法進入while 迴圈,無法將 1 加入串列中
- n 不等於 1:印出題目規定的字串
留言
張貼留言