2022年8月18日 星期四

Python a053: Sagit's 計分程式

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 為止)  -->

程式結束

>>>  

沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...