Для решения этой задачи необходимо разделить общее количество месяцев на 12. Целая часть от деления даст количество лет, а остаток — количество месяцев. Основная сложность заключается в правильном склонении слов «год» и «месяц» в зависимости от последней цифры числа. Алгоритм расчета Если дано число :
- Лет: (целочисленное деление). Месяцев: (остаток от деления).
Правила склонения существительных В русском языке выбор формы слова зависит от последней цифры (за исключением чисел от 11 до 14). Для слова «год»:
- год: если и . года: если и . лет: во всех остальных случаях (0, 5–9, 11–14).
Для слова «месяц»:
- месяц: если . месяца: если . месяцев: если или .
Примеры вычислений
| Ввод ( ) | Расчет лет ( ) | Расчет месяцев ( ) | Итоговая фраза |
|---|---|---|---|
| 21 | 1 год 9 месяцев | ||
| 262 | 21 год 10 месяцев | ||
| 553 | 46 лет 1 месяц | ||
| 624 | 52 года |
Реализация на языке Python Ниже представлен программный код, который учитывает все правила грамматики: python
defformat_age(n): years = n // 12months = n % 12# Склонение летif11 <= years % 100 <= 14: y_word = "лет"elif years % 10 == 1: y_word = "год"elif2 <= years % 10 <= 4: y_word = "года"else: y_word = "лет"# Склонение месяцевif months == 1: m_word = "месяц"elif2 <= months <= 4: m_word = "месяца"else: m_word = "месяцев"# Сборка итоговой строкиresult = f"{years}{y_word}"if months > 0: result += f"{months}{m_word}"return result Use code with caution.Хотите, я составлю таблицу для конкретного диапазона чисел или напишу аналогичный код на другом языке программирования?Форма ответа
Ответы и вопросы пользователей