【深基7.习9】培训 · 教师题解

【深基7.习9】培训

解题思路

用结构体保存学员。培训后年龄加 1,成绩乘 6 再除 5,超过 600 的截为 600。

正确性说明

提高 20% 等于乘 1.2,即乘 6/5;题目保证原分数为 5 的倍数,整数除法无损。取较小值满足满分上限。

易错点

年龄也要增加;先乘后除,避免 6/5 的整数结果变为 1。

复杂度

时间 O(n),空间 O(1)。

参考代码(C++11)

#include <bits/stdc++.h>
using namespace std;

struct Student {
    string name;
    int age, score;
};
Student train(Student s) {
    s.age++;
    s.score = min(600, s.score * 6 / 5);
    return s;
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int n;
    cin >> n;
    while (n--) {
        Student s;
        cin >> s.name >> s.age >> s.score;
        s = train(s);
        cout << s.name << " " << s.age << " " << s.score << "\n";
    }
    return 0;
}
返回题目