a053: Sagit's 計分程式
#a053: Sagit's 計分程式
'''
sagit 是一位高中電腦老師,這學期正在教學生寫C++程式。他的評分標準是依照每一位
學生在 ZeroJudge 系統上解出的題數,去計算出對應的得分。為了不讓分數落差太大,
因此他並不是採取每一題固定得分的方式,而是隨著題數增加而調整每題的得分。規則如下:
答對題數在 0~10 者,每題給6分。
題數在 11~20 者,從第11題開始,每題給2分。(前10題還是每題給6分)
題數在 21~40 者,從第21題開始,每題給1分。
題數在 40 以上者,一律100分。
如此一來,只要寫10題,就可以得到60分,寫20題,就可以得到80分,不過要得到滿分100分,則是要寫到40題,所以同學們分數的差距就大大地減少了。
不過問題來了,雖然學生們因為這樣的計分公式而大大地提升了及格率,
但因為 sagit 有600多位學生,一個一個去計算真的是一件很吃重的工作,
所以現在想請你幫他寫個程式解決這個問題。
輸入說明
每組測資只有一個整數 N (0<=N<=100),代表學生在 ZeroJudge 系統上解出的題數。
輸出說明
印出該位同學的得分。
'''
print('Sagits 計分程式')
print('答對題數在 0~10 者,每題給6分。')
print('題數在 11~20 者,從第11題開始,每題給2分。(前10題還是每題給6分)')
print('題數在 21~40 者,從第21題開始,每題給1分。')
print('題數在 40 以上者,一律100分。',end='\n\n')
print('每組測資只有一個整數 N (0<=N<=100),代表學生在 ZeroJudge 系統上解出的題數。')
while True:
N = (input('輸入 正整數N (0<=N<=100) (EOF 為止) -->'))
if N == '':
print('程式結束')
break
N=int(N)
if ( 0<= N ) and (N<=10):
score=6*N
print("同學的得分為 {} ".format(score),end='\n')
elif ( 11<= N ) and (N<=20):
score=60+2*(N-10)
print("同學的得分為 {} ".format(score),end='\n')
elif ( 21<= N ) and (N<=40):
score=80+1*(N-20)
print("同學的得分為 {} ".format(score),end='\n')
else:
score=100
print("同學的得分為 {} ".format(score),end='\n')
>>> %Run a053.py
Sagits 計分程式
答對題數在 0~10 者,每題給6分。
題數在 11~20 者,從第11題開始,每題給2分。(前10題還是每題給6分)
題數在 21~40 者,從第21題開始,每題給1分。
題數在 40 以上者,一律100分。
每組測資只有一個整數 N (0<=N<=100),代表學生在 ZeroJudge 系統上解出的題數。
輸入 正整數N (0<=N<=100) (EOF 為止) -->12
同學的得分為 64
輸入 正整數N (0<=N<=100) (EOF 為止) -->34
同學的得分為 94
輸入 正整數N (0<=N<=100) (EOF 為止) -->40
同學的得分為 100
輸入 正整數N (0<=N<=100) (EOF 為止) -->16
同學的得分為 72
輸入 正整數N (0<=N<=100) (EOF 為止) -->33
同學的得分為 93
輸入 正整數N (0<=N<=100) (EOF 為止) -->26
同學的得分為 86
輸入 正整數N (0<=N<=100) (EOF 為止) -->
程式結束
>>>
沒有留言:
張貼留言