f716 - 計算學期成績
題目描述
題目要求根據給定的學生總分,計算蝸牛老師公式中的 a 和 b 值,使得學期成績 y 的範圍在 55 到 100 之間。公式為 y = 45(x - a)/b + 55,其中 x 是學生的總分。
解題思路
根據題目描述,我們需要找到 a 和 b 的值,使得所有學生的學期成績都在 55 到 100 之間。由於公式中 y 的範圍是固定的,我們可以通過找到學生總分 x 的最小值和最大值來計算 a 和 b。
a 應該是學生總分的最小值,這樣可以使得 (x - a) 總是正數或零。
b 應該是學生總分的最大值減去最小值,這樣可以使得 (x - a)/b 的範圍在 0 到 1 之間。
具體來說,a 等於所有學生總分的最小值,b 等於所有學生總分的最大值減去最小值。
複雜度分析
- 時間複雜度: O(n)
- 空間複雜度: O(1)
程式碼
#include <bits/stdc++.h>
using namespace std;
int a,ma=-1e9,mi=1e9;
int main(){
while(cin >> a){
mi=min(a,mi);
ma=max(a,ma);
}
cout << mi << " " << ma-mi;
}