題目大意
有台汽車的里程數壞掉了,於是我們手動拿上碼表 + 定速開車,想詢問每次我們標記的時間時已經行駛了多少公里。
分析
毒,到處都是毒。這題是大毒阿,快逃RRRR
很簡單的操作題,先將所有的時間換成秒數,之後再乘以速度,但這裡的速度是 km/hr,因此要在除以 3600 就是答案。
重點觀念
- 這題如果要使用 cin,會非常難寫,建議使用 scanf
因為你沒辦法知道他到底這次有沒有要加速或是詢問你當前的距離 - 如果習慣
#define int long long
記住使用 scanf 要搭配%lld
- windows 情況下,double 有機率無法被 scanf 用到,毒,這是毒阿。
scanf GCC for long double [duplicate] - 有可能他連續加速兩次,因此計算里程數時不可以等到要查詢碼表時間是在算,必須每次都要算,
1
2
3//舉例
00:00:01 12
00:00:03 24 - 任何一個計算公式都不可以有 int 與 float 運算出現,不然會高機率出錯。因此建議不用
參考來源
齊笎編寫的 hackmd 詳解
心得
這題滿滿的都是坑阿…,我最不擅長寫關於小數點的題目了,希望以後遇到小數點的題目都可以安然度過。這次的 scanf 不能輸入 double 我花了 2 小時去想真的是太難過了…,不過齊笎介紹使用的 sscanf 到蠻好用的,值的紀錄。
可以用 sscanf 加一個 string 格式化輸入資料,還可以知道有多少筆資料被成功輸入,真的好用、真的香,讚啦
題目程式碼
1 |
|