1 条题解
-
0
#include <bits/stdc++.h> using namespace std; int main() { cout << setprecision(1) << fixed; // 设置输出格式,保留1位小数 int n; // 存储输入的行程公里数 cin >> n; // 输入第一组行程公里数 // 多组输入处理,直到输入n=0时结束 while (n) { double a = 0; // 存储当前行程的最小花费 if (n <= 4) a = 10; // [1] 行程≤4公里,直接收取起步价10元 else if (n > 4 && n <= 8) a = 10 + (n - 4) * 2; // [2] 4<行程≤8公里,起步价+超出4公里部分每公里2元 else if (n > 8 && n <= 13) a = 18 + (n - 8) * 2.4; // [3] 8<行程≤13公里,前8公里18元+超出部分每公里2.4元 else if (n % 8 == 0) a = (n / 8) * 18; // [4] 行程是8的倍数,分成n/8段,每段8公里收费18元 else if (n % 8 > 4) a = (n / 8) * 18 + 10 + (n % 8 - 4) * 2; // [5] 剩余公里数>4,单独坐一段更划算 else a = (n / 8) * 18 + n % 8 * 2.4; // [6] 剩余公里数≤4,合并到最后一段按2.4元/公里计算 // 输出处理:如果花费是整数则输出整数,否则保留一位小数 if (a == int(a)) cout << int(a) << endl; else cout << a << endl; cin >> n; // 输入下一组行程公里数 } return 0; }
- 1
信息
- ID
- 1028
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 1
- 标签
- 递交数
- 2
- 已通过
- 1
- 上传者