格式化

廣告

廣告2

2012年9月23日 星期日

[JAVA教學範例] a053: Sagit's 計分程式


[JAVA範例] 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 系統上解出的題數。
輸出說明 :
印出該位同學的得分。

範例輸入 :
10
40

範例輸出 :
60
100

提示 :
背景知識: 多重 if

出處 :
Sagit's 教學題 (管理:sagit)

範例解答:
import java.io.IOException;
import java.util.Scanner;


 
public class eee { 
    @SuppressWarnings({ "resource", "unused" })
 public static void main(String[] args) throws IOException { 

     Scanner read = new Scanner(System.in);
     int Subtraction;
     int Total_score = 0;
     
     while(read.hasNext())
     {
      Subtraction=read.nextInt();
      
      if(Subtraction<=10) Total_score=Subtraction*6;
      else
      if(Subtraction<=20) {Total_score=60; Total_score+=(Subtraction-10)*2;}
      else
      if(Subtraction<=40) {Total_score=80; Total_score+=(Subtraction-20)*1;}
      else
      if(Subtraction>40) Total_score=100;
      
      System.out.println(Total_score);
     }
    }
}

沒有留言 :