Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.47 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int multOfThree(int M) // функция, возвращающая количество троек в кратном тройке числе (2 зад.)
  5. {
  6. int count = 0;
  7. for (int i = 0; i < M; i += 3) {
  8. count++;
  9. }
  10. return count;
  11. }
  12.  
  13. int multOfFour(int M) // функция, возвращающая количество четверок в кратном четверке числе (2 зад.)
  14. {
  15. int count = 0;
  16. for (int i = 0; i < M; i += 4) {
  17. count++;
  18. }
  19. return count;
  20. }
  21.  
  22. int main()
  23. {
  24. setlocale(LC_ALL, "Russian");
  25. int temp, count = 0;
  26. cout << "Введите номер задания контрольной работы: "; cin >> temp;
  27. switch (temp)
  28. {
  29. case 1:
  30. int A, B, C, sum;
  31. cout << "A = "; cin >> A;
  32. cout << "B = "; cin >> B;
  33. cout << "C = "; cin >> C;
  34. sum = A; // сумме присваиваем начальное значение - основание
  35. while (sum <= C - B) { // в условии из максимальной стоимости вычитаем одну лопасть, чтобы не перескочить ее(стоимость)
  36. sum += B; // увеличиваем сумму на стоимость одной лопасти с каждым пройденным циклом
  37. count++; // подсчитываем количество лопастей
  38. }
  39. cout << count;
  40. break;
  41. case 2:
  42. int M, three = 0, four = 0, sum1 = 0;
  43. cout << "M = "; cin >> M;
  44. if (M % 4 == 0) { // для M кратного четырем
  45. cout << "4: " << multOfFour(M); // вызываем соответствующую функцию
  46. }
  47. else if (M % 3 == 0) { // для M кратного трём
  48.  
  49. cout << "3: " << multOfThree(M); // вызываем соответствующую функцию
  50. }
  51. else if (M < 3 || M == 5) { // исключим все возможные варианты значений, при которых нельзя разместить ни одной лопасти без остатка
  52. cout << '0';
  53. }
  54. else { // для некратных значений
  55. while (sum1 < M && sum1 > -1) { // условия выхода: 1 для цикла слева на право, 2 для цикла справа налево
  56. sum1 += 4; // прибавляем к нулевому значению суммы четверки, двигаясь тем самым слева направо
  57. four++; // подсчитываем их кол-во
  58. if (sum1 + 3 == M) { // если в конец ряда можно "впихнуть" тройку, делаем это и получаем ответ
  59. cout << "4: " << four << endl << "3: " << three + 1;
  60. break;
  61. }
  62. if (sum1 + 3 > M) // если эта тройка не влезет в ряд, запускаем цикл справа налево, заменяя четверки на тройки
  63. {
  64. while(1) {
  65. sum1 += 3; // сначала прибавляем тройку, чтобы не остановиться, не дойдя до M
  66. three++;
  67. if (sum1 == M) {
  68. cout << "4: " << four << endl << "3: " << three;
  69. break; // выходим из цикла только тогда, когда доберемся до M
  70. }
  71. sum1 -= 4; // отнимаем четверку, чтобы заменить ее на тройку
  72. four--;
  73. }
  74. }
  75. }
  76. }
  77. break; // для кейса
  78. case 3:
  79. break;
  80. }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement