• Даны дата рождения человека и сегодняшняя дата. Требуется определить, исполнилось ли человеку 16 лет. Формат входных данных В первой строке входного файла записана дата рождения человека, во второй — сегодняшняя дата. Каждая дата представляет собой три целых числа: D, M и Y — день, месяц и год соответственно. Гарантируется, что тройки чисел задают корректную дату календаря, а сами даты лежат между 1 января 1900 года и 31 декабря 2050 года.
    написать на c++

Ответы 3

  • спасибо
    • Автор:

      arniexcxr
    • 5 лет назад
    • 0
  • Прошу ответь на это сообщение, ты можешь помочь мне сделать другие задачи у меня?
    • Автор:

      buzz
    • 5 лет назад
    • 0
  • Алгоритм решения

    Для начала давай посмотрим на года.

    1. Если разница между годом рождения и текущим годом больше 16, мы однозначно можем сказать, что человеку уже есть 16.

    2. Если разница между годом рождения и текущим годом меньше 16, мы однозначно можем сказать, что человеку ещё нет 16.

    Если разница между годом рождения и текущим годом равна 16, мы можем сказать, что у человека день рождения в этом году. Давай глянем на месяц.

    1. Если текущий месяц больше месяца рождения, человеку уже есть 16.

    2. Если текущий месяц меньше месяца рождения, человеку ещё нет 16.

    Если у человека день рождения в этом месяце, давай точно так же глянем на дни.

    В итоге мы уже точно знаем, когда у человека день рождения.

    Код решения

    #include <bits/stdc++.h>

    using namespace std;

    int main() {

       int d1, m1, y1, d2, m2, y2;

       cin >> d1 >> m1 >> y1 >> d2 >> m2 >> y2;

       if (y2 - y1 > 16) {

           cout << "YES" << endl;

           return 0;

       } else if (y2 - y1 < 16) {

           cout << "NO" << endl;

           return 0;

       }

       if (m2 > m1) {

           cout << "YES" << endl;

           return 0;

       } else if (m2 < m1) {

           cout << "NO" << endl;

           return 0;

       }

       if (d2 < d1) {

           cout << "NO" << endl;

           return 0;

       }

       cout << "YES" << endl;

       return 0;

    }

    Файл решения прикреплён.

    answer img
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years