a053 - Sagit's 計分程式
題目描述
題目要求根據學生在 ZeroJudge 上解出的題數,計算其對應的得分。得分規則根據題數範圍不同而有所變化,具體如下:0-10 題每題 6 分,11-20 題前 10 題每題 6 分,後 10 題每題 2 分,21-40 題前 20 題每題 6 或 2 分,後 20 題每題 1 分,40 題以上直接給 100 分。
解題思路
此題的解法是使用一系列的 if-else if-else 條件判斷,根據輸入的題數 A 判斷其所屬的範圍,然後根據對應的規則計算得分。由於題目給定的範圍是明確且互斥的,因此這種方法可以有效地計算出正確的得分。
複雜度分析
- 時間複雜度: O(1)
- 空間複雜度: O(1)
程式碼
#include <iostream>
using namespace std;
int main(){
int A;
while(cin >> A){
if(A<=10){
cout << A*6 <<endl;
}
else if(10<A&&A<=20){
cout << 60+(A-10)*2 <<endl;
}
else if(20<A&&A<=40){
cout << 80+(A-20) <<endl;
}
else{
cout << "100" <<endl;
}
}
}