题目链接

题目本身非常简单,直接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;

}

JellyFishDing
4 声望2 粉丝

找个地方记点东西