1 条题解
-
0
【例10.1】机票打折
解题思路
实际折后价为 xz/10,再按十元四舍五入。将一位小数折扣乘 10 变成整数 q,则答案为 ((xq+500)/1000)×10。
正确性说明
xz/100 是以十元为单位的价格,折扣放大为 q 后得到 xq/1000;加半个单位再整除实现正数四舍五入。
易错点
七七折输入 7.7,折后是原价的 0.77;最终是整十元,不是取整元。
复杂度
本题输入规模固定,时间 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 x; double z; cin >> x >> z; long long q = llround(z * 10); cout << (x * q + 500) / 1000 * 10 << "\n"; return 0; }
- 1