Jater

Lesson_7_Koshej

Jan 10th, 2018
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.88 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <conio.h>
  4.  
  5. using namespace std;
  6.  
  7. int main(int argc, char *argv[])
  8. {
  9.     /*Кощею Бессмертному было всего 400 лет, когда Василиса Прекрасная пообещала, что выйдет за него замуж,
  10.     если он помолодеет на 375 лет. С этого дня Кощей стал ежедневно делать зарядку и питаться только молодильными яблоками.
  11.     Молодильные яблоки – сильнодействующее, но небезопасное средство.
  12.     Каждый день приема этих яблок делает Кощея моложе на 25 лет, но сокращает срок его жизни вдвое.
  13.     Обычно Кощеи живут 3200 лет. Определить, что ждет Кощея: свадьба или смерть и на какой день приема молодильных яблок.
  14.     Снабдите Кощея Бессмертного необходимым для решения задачи софтом.*/
  15.     int realAge = 400;//возраст Кощея
  16.     int maxAge = 3200;// максимальный начальный возраст Кощея
  17.     int planAge;// планируемый возрас для женитьбы
  18.     const int removeAge = 375;// кол-во лет, на которые должен помолодеть Кощей
  19.     const int appleBetter = 25;//делает моложе (appleBetter - яблоко улучшает)
  20.     const int appleDeteriorate = 2;//сокращает максимальный возраст (appleDeteriorate - яблоко ухудшает)
  21.     bool f = false;// объявляем логическую переменную, которая следит за тем, была свадьба или нет. Изначально ее нет
  22.    
  23.     planAge = realAge - removeAge;//расчитываем планируемый максимальный возраст для свадьбы (т.к. можно быть младше)
  24.     while(maxAge >= realAge){ //цикл продолжается пока Кощей жив, то есть, пока его максимальный возраст больше или равен реальному
  25.         //Вначале делаем проверку возраста, а вдруг Кощей уже соответствует требованиям свадьбы?
  26.         if (realAge <= planAge){ //если реальный возраст стал меньше планируемого, то есть цель омоложения достигнута
  27.             f = !f;//инвертируем значение f. То есть, из false делаем true
  28.             break;//уходим из цикла омоложения
  29.         }
  30.         //каждый день (каждый шаг цикла) делаем возраст Кощея на 25 лет меньше
  31.         realAge -= appleBetter;//операция -= позволяет из переменной перед операцией отнять значение перменной после операции
  32.         //но максимальный возраст уменьшается в 2 раза
  33.         maxAge /= appleDeteriorate;// операция /= позволяет делить значение переменной до операции на значение переменной после операции
  34.     }
  35.     if(f) //выйдя из цикла проверяем, была ли свадьба
  36.         cout << "Ura, svad'ba!";//если f стала true, объявляем свадьбу (первый вариант расчитан на true)
  37.     else
  38.         cout << "Vse ploho, horonim =(";//если f осталась false, объявляем похороны (второй вариант, после else расчитан на false)
  39.    
  40.     _getch();
  41.     return EXIT_SUCCESS;
  42. }
Add Comment
Please, Sign In to add comment