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;
- }
- }
沒有留言:
張貼留言