題目連結
題意:
電話費計算程式
有 5 種地區 A, B, C, D, E
還有分三種時段,費率各不相同
測資每行一組
分別給地區, 電話號碼, H1, M1, H2, M2
後 4 個數字代表時間區間,從 H1:M1 ~ H2:M2
計算該區間內的電話費
輸出要照格式依序輸出
前10位靠右對齊輸出電話號碼、
三個時段佔的分鐘數(各6位)、
地區(3位)、
電話費(8位)
解法:
很直觀,也很麻煩
先建地區對應時間的表
給定一個區間,如何個別統計 3 個時段佔多少呢?
這邊只是提供我的土法,一定有更快的
開一個一維陣列,表示所有分鐘
先判斷時間區間前者晚於或早於後者
如果前者較晚,表示有跨日
例如
3:00~5:00 就是同一天,共2小時
5:00~3:00 就是跨日,共22小時
題目有說區間不超過24小時
所以不用做其他判斷
(如果時間相同,如 8:00~8:00,表示跨日,經過一天)
然後按區間經過的,就在陣列註記
最後三個時間各自統計範圍內註記的總分鐘數即可
記得輸出照位數輸出
可以用跟 C 語言相同的 printf 方法
細節就不詳述
程式(Java):
題意:
電話費計算程式
有 5 種地區 A, B, C, D, E
還有分三種時段,費率各不相同
測資每行一組
分別給地區, 電話號碼, H1, M1, H2, M2
後 4 個數字代表時間區間,從 H1:M1 ~ H2:M2
計算該區間內的電話費
輸出要照格式依序輸出
前10位靠右對齊輸出電話號碼、
三個時段佔的分鐘數(各6位)、
地區(3位)、
電話費(8位)
解法:
很直觀,也很麻煩
先建地區對應時間的表
給定一個區間,如何個別統計 3 個時段佔多少呢?
這邊只是提供我的土法,一定有更快的
開一個一維陣列,表示所有分鐘
先判斷時間區間前者晚於或早於後者
如果前者較晚,表示有跨日
例如
3:00~5:00 就是同一天,共2小時
5:00~3:00 就是跨日,共22小時
題目有說區間不超過24小時
所以不用做其他判斷
(如果時間相同,如 8:00~8:00,表示跨日,經過一天)
然後按區間經過的,就在陣列註記
最後三個時間各自統計範圍內註記的總分鐘數即可
記得輸出照位數輸出
可以用跟 C 語言相同的 printf 方法
細節就不詳述
程式(Java):
留言
張貼留言