1 条题解
-
0
【深基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; }
- 1