Advertisement
Spocoman

05. Coins

Aug 29th, 2024
503
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.80 KB | None | 0 0
  1. РЕШЕНИЕ БЕЗ ЦИКЪЛ:
  2.  
  3. import java.util.Scanner;
  4.  
  5. public class Coins {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.         double input = Double.parseDouble(scanner.nextLine());
  9.         int change = (int) (input * 100), coinCount = 0;
  10.  
  11.         if (change >= 200) {
  12.             coinCount += change / 200;
  13.             change %= 200;
  14.         }
  15.         if (change >= 100) {
  16.             coinCount += change / 100;
  17.             change %= 100;
  18.         }
  19.         if (change >= 50) {
  20.             coinCount += change / 50;
  21.             change %= 50;
  22.         }
  23.         if (change >= 20) {
  24.             coinCount += change / 20;
  25.             change %= 20;
  26.         }
  27.         if (change >= 10) {
  28.             coinCount += change / 10;
  29.             change %= 10;
  30.         }
  31.         if (change >= 5) {
  32.             coinCount += change / 5;
  33.             change %= 5;
  34.         }
  35.         if (change >= 2) {
  36.             coinCount += change / 2;
  37.             change %= 2;
  38.         }
  39.         if (change == 1) {
  40.             coinCount++;
  41.             change--;
  42.         }
  43.        
  44.         System.out.println(coinCount);
  45.     }
  46. }
  47.  
  48. РЕШЕНИЕ С WHILE / FOR:
  49.  
  50. import java.util.Scanner;
  51.  
  52. public class Coins {
  53.     public static void main(String[] args) {
  54.         Scanner scanner = new Scanner(System.in);
  55.         double input = Double.parseDouble(scanner.nextLine());
  56.         int change = (int) (input * 100), coinCount = 0;
  57.  
  58.         while (change > 0) {    // ИЛИ:  for (int i = 0; change > 0; i++) {
  59.             if (change >= 200) {
  60.                 change -= 200;
  61.             } else if (change >= 100) {
  62.                 change -= 100;
  63.             } else if (change >= 50) {
  64.                 change -= 50;
  65.             } else if (change >= 20) {
  66.                 change -= 20;
  67.             } else if (change >= 10) {
  68.                 change -= 10;
  69.             } else if (change >= 5) {
  70.                 change -= 5;
  71.             } else if (change >= 2) {
  72.                 change -= 2;
  73.             } else {
  74.                 change--;
  75.             }
  76.             coinCount++;
  77.         }
  78.  
  79.         System.out.println(coinCount);
  80.     }
  81. }
  82.  
  83. ИЛИ:
  84.  
  85. РЕШЕНИЕ С ТЕРНАРЕН ОПЕРАТОР:
  86.  
  87. import java.util.Scanner;
  88.  
  89. public class Coins {
  90.     public static void main(String[] args) {
  91.         Scanner scanner = new Scanner(System.in);
  92.         double input = Double.parseDouble(scanner.nextLine());
  93.         int change = (int) (input * 100), coinCount = 0;
  94.  
  95.         while (change > 0) {    // ИЛИ:  for (int i = 0; change > 0; i++) {
  96.             while (change != 0) {
  97.  
  98.                 change -=
  99.                         change >= 200 ? 200 :
  100.                                 change >= 100 ? 100 :
  101.                                         change >= 50 ? 50 :
  102.                                                 change >= 20 ? 20 :
  103.                                                         change >= 10 ? 10 :
  104.                                                                 change >= 5 ? 5 :
  105.                                                                         change >= 2 ? 2 : 1;
  106.                 coinCount++;
  107.             }
  108.         }
  109.        
  110.         System.out.println(coinCount);
  111.     }
  112. }
  113.  
  114. ОПТИМИЗИРАНО РЕШЕНИЕ:
  115.  
  116. import java.util.Scanner;
  117.  
  118. public class Coins {
  119.     public static void main(String[] args) {
  120.         Scanner scanner = new Scanner(System.in);
  121.         double input = Double.parseDouble(scanner.nextLine());
  122.         int change = (int) (input * 100), coinCount = 0;
  123.  
  124.         for (int coin : new int[]{200, 100, 50, 20, 10, 5, 2, 1}) {
  125.             if (change >= coin) {
  126.                 coinCount += change / coin;
  127.                 change %= coin;
  128.             }
  129.         }
  130.  
  131.         System.out.println(coinCount);
  132.     }
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement