2020年3月6日 星期五

[zerojudge]a053. Sagit's 計分程式

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

程式碼如下:

  1. /* a053. Sagit's 計分程式
  2. *
  3. * 2020/3/7
  4. */
  5.  
  6. import java.util.Scanner;
  7.  
  8. public class Pa053{
  9.  
  10. public static void main(String[] args){
  11. Scanner scanner = new Scanner(System.in);
  12.  
  13. while(scanner.hasNext()){
  14. int n = scanner.nextInt();
  15. int score = 0;
  16.  
  17. if(isBetween(0, n, 10)){
  18. score += n * 6;
  19. }else if(isBetween(11, n, 20)){
  20. score += 10 * 6;
  21. score += (n - 10) * 2;
  22. }else if(isBetween(21, n, 40)){
  23. score += 10 * 6;
  24. score += 10 * 2;
  25. score += (n - 20) * 1;
  26. }else{
  27. score = 100;
  28. }
  29.  
  30. System.out.println(score);
  31. }
  32. }
  33.  
  34. public static boolean isBetween(int min, int v, int max){
  35. return min <= v & v <= max;
  36. }
  37. }

沒有留言:

張貼留言