共计 441 个字符,预计需要花费 2 分钟才能阅读完成。
题目链接
题目本身非常简单,直接 if-else 其实就能做,我的代码用了一个表驱动。
需要注意的是(总是会忘记的一个点,也导致这次没能一次 AC 的一个点):
这是一种分段计算的题目,每一个符合的段都应该分开计算然后最后加起来,而不是只要计算最大符合的一段!
贴一下自己的代码(刚开始学 C ++,代码可能写得比较 xxx):
#include <iostream> | |
#include <iomanip> | |
using namespace std; | |
int main() {int amount[3] = {400, 150, 0}; | |
double price[3] = {0.5663, 0.4663, 0.4463}; | |
int sum; | |
cin >> sum; | |
double res = 0.0; | |
for (int i = 0; i < 3; i++) {if (sum > amount[i]) {res += (sum - amount[i]) * price[i]; | |
sum = amount[i]; | |
} | |
} | |
cout << fixed << setprecision(1); | |
cout << res; | |
return 0; | |
} |
正文完