1 条题解
-
0
练21.5 打车费用
解题思路
用角为单位精确计费:起步 60 角,2~10 千米每千米 18 角,10 千米以上 27 角;等候每完整 3 分钟再加 10 角。
正确性说明
路程拆为互斥收费段,等待费是独立整数单位,两者相加得到总角数。整除 10 可判定是否需要小数。
易错点
等候不足三分钟舍去;整数费用不输出 .0。
复杂度
输入规模固定,时间 O(1),额外空间 O(1)。
参考代码(C++11)
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); long long d, t; cin >> d >> t; long long fee = 60 + max(0LL, min(d, 10LL) - 2) * 18 + max(0LL, d - 10) * 27 + t / 3 * 10; cout << fee / 10; if (fee % 10) cout << "." << fee % 10; cout << "\n"; return 0; }
- 1