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