Advertisement
Spocoman

05. Coins

Sep 10th, 2023 (edited)
1,083
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.37 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7.     double input;
  8.     cin >> input;
  9.  
  10.     int change = input * 100;
  11.     int coinCount = 0;
  12.  
  13.     while (change > 0) {    // ИЛИ:  for (int i = 0; change > 0; i++) {
  14.         if (change >= 200) {
  15.             change -= 200;
  16.         }
  17.         else if (change >= 100) {
  18.             change -= 100;
  19.         }
  20.         else if (change >= 50) {
  21.             change -= 50;
  22.         }
  23.         else if (change >= 20) {
  24.             change -= 20;
  25.         }
  26.         else if (change >= 10) {
  27.             change -= 10;
  28.         }
  29.         else if (change >= 5) {
  30.             change -= 5;
  31.         }
  32.         else if (change >= 2) {
  33.             change -= 2;
  34.         }
  35.         else {
  36.             change--;
  37.         }
  38.  
  39.         coinCount++;
  40.     }
  41.  
  42.     cout << coinCount << endl;
  43.  
  44.     return 0;
  45. }
  46.  
  47. РЕШЕНИЕ С ТЕРНАРЕН ОПЕРАТОР:
  48.  
  49. #include <iostream>
  50. #include <string>
  51.  
  52. using namespace std;
  53.  
  54. int main() {
  55.     double input;
  56.     cin >> input;
  57.  
  58.     int change = input * 100;
  59.     int coinCount = 0;
  60.  
  61.  while (change != 0) {
  62.  
  63.     change -=
  64.         change >= 200 ? 200 :
  65.         change >= 100 ? 100 :
  66.         change >= 50 ? 50 :
  67.         change >= 20 ? 20 :
  68.         change >= 10 ? 10 :
  69.         change >= 5 ? 5 :
  70.         change >= 2 ? 2 : 1;
  71.  
  72.     coinCount++;
  73. }
  74.  
  75.     cout << coinCount << endl;
  76.  
  77.     return 0;
  78. }
  79.  
  80. РЕШЕНИЕ БЕЗ ЦИКЪЛ:
  81.  
  82. #include <iostream>
  83. #include <string>
  84.  
  85. using namespace std;
  86.  
  87. int main() {
  88.     double input;
  89.     cin >> input;
  90.  
  91.     int change = input * 100;
  92.     int coinCount = 0;
  93.  
  94.     if (change >= 200) {
  95.         coinCount += change / 200;
  96.         change %= 200;
  97.     }
  98.     if (change >= 100) {
  99.         coinCount += change / 100;
  100.         change %= 100;
  101.     }
  102.     if (change >= 50) {
  103.         coinCount += change / 50;
  104.         change %= 50;
  105.     }
  106.     if (change >= 20) {
  107.         coinCount += change / 20;
  108.         change %= 20;
  109.     }
  110.     if (change >= 10) {
  111.         coinCount += change / 10;
  112.         change %= 10;
  113.     }
  114.     if (change >= 5) {
  115.         coinCount += change / 5;
  116.         change %= 5;
  117.     }
  118.     if (change >= 2) {
  119.         coinCount += change / 2;
  120.         change %= 2;
  121.     }
  122.     if (change == 1) {
  123.         coinCount++;
  124.         change--;
  125.     }
  126.  
  127.     cout << coinCount << endl;
  128.  
  129.     return 0;
  130. }
  131.  
  132. РЕШЕНИЕ С МАСИВ И FOR:
  133.  
  134. #include <iostream>
  135. #include <string>
  136.  
  137. using namespace std;
  138.  
  139. int main() {
  140.     double input;
  141.     cin >> input;
  142.  
  143.     int change = input * 100;
  144.     int coinCount = 0;
  145.  
  146.     int coinValues[] = { 200, 100, 50, 20, 10, 5, 2, 1 };
  147.  
  148.     for (int i = 0; i < sizeof(coinValues) / sizeof(int); i++) {
  149.         if (change >= coinValues[i]) {
  150.             coinCount += change / coinValues[i];
  151.             change %= coinValues[i];
  152.         }
  153.     }
  154.  
  155.     cout << coinCount << endl;
  156.  
  157.     return 0;
  158. }
  159.  
  160. РЕШЕНИЕ С FOR-EACH:  // TARIKAT EDITION:)
  161.  
  162. #include <iostream>
  163. #include <string>
  164.  
  165. using namespace std;
  166.  
  167. int main() {
  168.     double input;
  169.     cin >> input;
  170.  
  171.     int change = input * 100;
  172.     int coinCount = 0;
  173.  
  174.     for (auto coinValue : { 200, 100, 50, 20, 10, 5, 2, 1 }) {
  175.         if (change >= coinValue) {
  176.             coinCount += change / coinValue;
  177.             change %= coinValue;
  178.         }
  179.     }
  180.  
  181.     cout << coinCount << endl;
  182.  
  183.     return 0;
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement