Vlad5080

Spinners olimpiade execise

Jan 9th, 2020
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.00 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. void ex1() {
  6.     int A, B, C;
  7.  
  8.     cout << "Введите данные для экономической формулы\n -> ";
  9.     cin >> A;
  10.     cout << "\n -> ";
  11.     cin >> B;
  12.     cout << "\n -> ";
  13.     cin >> C;
  14.  
  15.     cout << "\n -> " << (C - A) / B << "\nЭто максимальное колличество лопастей спиннера";
  16. }
  17.  
  18. void ex2() {
  19.     int M, L3, L4;
  20.  
  21.     cout << "Введите количество лопастей для спиннеров\n -> ";
  22.     cin >> M;
  23.     L4 = M % 3;
  24.     L3 = (M - 4 * L4) / 3;
  25.     if (L3 > 0) {
  26.         cout << " Количество 3-ёх лопастных\n -> " << L3 << " \n Количество 4-ёх лопастных\n -> " << L4 << endl;
  27.     }
  28.     else cout << " Количество 3-ёх лопастных\n -> " << 0 << " \n Количество 4-ёх лопастных\n -> " << 0 << endl;
  29.  
  30. }
  31.  
  32. void ex3() {
  33.     int N, M, k;
  34.     cout << "Введите количество строк и столбцов последовательно\n -> ";
  35.     cin >> N >> M;
  36.     k = (N + 1) * (M + 1) * N * M / 4;
  37.  
  38.     cout << " Количество максимально возможных прямоугольников\n -> " << k << endl;
  39. }
  40.  
  41. int checkex4(int freePL) {
  42.  
  43.         if (freePL <= 36) return ((freePL - 1) / 4);
  44.  
  45.         else return (8 - (freePL - 37) / 2);
  46.    
  47. }
  48.  
  49. int maxex4(int kupe[9] = {0}) {
  50.     int max = 0;
  51.     for (int i = 0; i < 9; i++) {
  52.         if (kupe[i] == 6) {
  53.             int BuffMax = 1;
  54.             while (kupe[i + 1] == 6) {
  55.                 i++;
  56.                 BuffMax++;
  57.             }
  58.             if (BuffMax > max) {
  59.                 max = BuffMax;
  60.             }
  61.         }
  62.     }
  63.     return max;
  64. }
  65.  
  66.  
  67.  
  68. void ex4() {
  69.  
  70.     int kol = 0, place, max = 0, emptykupe = 0;
  71.     int kupe[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, };
  72.     vector <int> freePL;
  73.     cout << "Сколько свободных мест?\n -> ";
  74.     cin >> kol;
  75.  
  76.     if (kol < 6) cout << "Ни одного купе не будет свободно.\n Причина: мест меньше 6." << endl;
  77.     else {
  78.        
  79.         cout << endl << "Ведите свободные места\n";
  80.        
  81.         for (int i = 0; i < kol; i++) {
  82.             cout << "-> ";
  83.             cin >> place;
  84.             freePL.push_back(place);
  85.         }
  86.                
  87.         for (int i = 0; i < freePL.size(); i++) {
  88.             kupe[checkex4(freePL[i])]++;
  89.  
  90.         }
  91.         cout << "Свободные места в купе (схема): \n";
  92.         for (int i = 0; i < 9; i++) {
  93.             cout << kupe[i] << " ";
  94.         }
  95.        
  96.        
  97.         cout << endl << "Свободных купе подряд: \n -> " << maxex4(kupe) << endl;
  98.     }
  99. }
  100.  
  101. void ex5() {
  102.     setlocale(LC_ALL, "Russian");
  103.     int n, k;
  104.     cout << "Введите количество свободных мест: ";
  105.     cin >> n;
  106.     cout << "Введите количество школьников: ";
  107.     cin >> k;
  108.     while (k != 1) {
  109.         n = (n - k % 2) / 2;
  110.         k /= 2;
  111.     }
  112.     cout << "Остаток мест слева/справа \n -> " << (n - 1) / 2 << " \n -> " << n / 2 << endl;
  113. }
  114. int main() {
  115.  
  116.     setlocale(0, "rus");
  117.  
  118.     //ex1();
  119.     //ex2();
  120.     //ex3();
  121.     //ex4();
  122.     //ex5();
  123.  
  124.     system("pause");
  125.     return 0;
  126. }
Advertisement
Add Comment
Please, Sign In to add comment