Ю2.29

Условие

Для заданного [latex]0 \le n \le 200[/latex], рассматриваемого как возраст человека, вывести фразу вида: «Мне 21 год», «Мне 32 года», «Мне 12 лет».

Тестирование

Входные данные Выходные данные
1 0 Мне 0 лет
2 1 Мне 1 год
3 14 Мне 14 лет
4 24 Мне 24 года
5 111 Мне 111 лет
6 151 Мне 151 год
7 200 Мне 200 лет

Код

Решение

Основная задача состоит в том, чтобы определить, какую форму слова «год» из трех существующих («год», «года», «лет») нужно вывести в конце предложения. Для этого обратимся к правилам его употребления:

В первой сотне лет:

  • в первом десятке лет, до 5 лет употребляется слово «год»: 1 год, 2 года, 3 года, 4 года, а от 5 лет до 10 лет употребляется слово «лет»: 5 лет, …, 10 лет;
  • во втором десятке лет употребляется слово «лет»: 11 лет, 12 лет, …, 20 лет;
  • от третьего до 9-го десятка лет, в первых четырёх годах десятка употребляется слово «год»: 21 год, 22 года, 23 года, 24 года, а в остальных годах десятка употребляется слово «лет»: 25 лет, …, 29 лет, 30 лет.

В следующих сотнях лет повторяется порядок первой сотни лет.

Таким образом, форма слова зависит от того, на какие две цифры заканчивается возраст. Составим алгоритм из двух проверок:

  1. Если число заканчивается на [latex]0[/latex] или цифру, превышающую [latex]4[/latex], или если вторая с конца цифра этого числа — [latex]1[/latex], то выводим слово «лет» и завершаем программу; иначе переходим ко второй проверке.
  2. Если последняя цифра числа превышает [latex]1[/latex] (то есть является одной из следующих: [latex]2[/latex], [latex]3[/latex], [latex]4[/latex]), то выводим слово «года»; иначе выводим слово «год».

Наконец, реализуем вышеописанный алгоритм в виде двух вложенных одна в другую тернарных операций:

Ссылки

Код программы на Ideone.com;

Правила употребления слова «год».

Related Images:

One thought on “Ю2.29

Добавить комментарий