a053. Sagit's 計分程式
答對的題數越多單題得就越低,可以透過巢狀if、for迴圈、多重if之類的來達成,方法很多樣,我使用的是多重if,算式可以再進一步簡化。
想說一下關於&&和&的差別,&是只要一個是False就回傳False了,&&是即便第一個就是False,也會去執行判斷第二個項目。
如果判斷是這樣:a == b & a++ == c,那如果a != b 那 a 就不會+1了。若是寫成 a == b && a++ == c 那不論 a 是否等於 b ,到最後 a 都會+1
| T | F | |
| T | T | F |
| F | F | F |
程式碼如下:
/* a053. Sagit's 計分程式
*
* 2020/3/7
*/
import java.util.Scanner;
public class Pa053{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()){
int n = scanner.nextInt();
int score = 0;
if(isBetween(0, n, 10)){
score += n * 6;
}else if(isBetween(11, n, 20)){
score += 10 * 6;
score += (n - 10) * 2;
}else if(isBetween(21, n, 40)){
score += 10 * 6;
score += 10 * 2;
score += (n - 20) * 1;
}else{
score = 100;
}
System.out.println(score);
}
}
public static boolean isBetween(int min, int v, int max){
return min <= v & v <= max;
}
}
沒有留言:
張貼留言