已知每月出行天数及每天骑行的费用,请问如果开通月卡(开卡费用7.6元,每月可无限使用,每日最多减免2元)后,每月可以节省多少元? 格式 输入 第一行,一个整数n,表示每月骑行天数。 第二行,n个小数,表示每日骑行产生的费用。 输出 共一行,一个小数,表示购买月卡后节省的钱数,保留1位小数。如果不省钱,输出0。 样例 输入数据 1 6 1.5 3.0 4.5 1.5 2.0 2.5 输出数据 1 3.4 样例解释:骑行6日,节省总费用1.5+2.0+2.0+1.5+2.0+2.0=11元,共节省11-7.6=3.4元 限制 1 ≤ � ≤ 31 1≤n≤31请帮我用c++实现
时间: 2024-04-15 10:32:06 浏览: 19
好的,我可以帮你实现这个问题。以下是用C++实现的代码:
```cpp
#include <iostream>
#include <vector>
#include <iomanip>
using namespace std;
float calculateSavings(int n, vector<float>& dailyCosts) {
float totalCost = 0;
for (int i = 0; i < n; i++) {
totalCost += dailyCosts[i];
}
float savings = totalCost - 7.6; // 开卡费用7.6元
if (savings <= 0) {
return 0;
}
int maxDiscounts = min(n, 2); // 每日最多减免2元
float discount = maxDiscounts * 2;
savings -= discount;
return savings;
}
int main() {
int n;
cin >> n;
vector<float> dailyCosts(n);
for (int i = 0; i < n; i++) {
cin >> dailyCosts[i];
}
float savings = calculateSavings(n, dailyCosts);
cout << fixed << setprecision(1) << savings << endl;
return 0;
}
```
你可以将以上代码保存到一个名为 `bike_savings.cpp` 的文件中,并在命令行中使用以下命令进行编译和运行:
```
g++ bike_savings.cpp -o bike_savings
./bike_savings
```
然后按照提示输入数据即可得到结果。希望能帮到你!