
Після того коли людству стали доступні міжзоряні подорожі постала потреба в заселенні відкритих
планет. Деякі планети мали корисні копалини потрібні людству, але атмосфера їх була непридатна для існування людей, тому їх вирішили заселити високоінтелектуальними роботами, що крім добування корисних копалин можуть виготовляти собі подібних. Таке «суспільство» роботів живе за певними законами. Один раз на рік всі роботи планети об’єднуються в групи з 3 чи 5 осіб (причому число груп із 3 роботів повинно бути максимально можливим). Група з 3 роботів виготовляє 5, а група з 5 – 9 нових роботів. Кожен робот повністю зношується і припиняє існування за 3 роки після виготовлення. Початкова кількість роботів, яких заселяють на планету завжди більша семи. Початком існування вважаємо момент заселення. Написати програму, яка визначить скільки роботів буде на заселеній планеті через N років.

Ответы на вопрос

Ответ:
robots = int(input("Введіть початкову кількість роботів: "))
N = int(input("Введіть кількість років: "))
for i in range(1, N+1):
groups_of_3 = robots // 3
groups_of_5 = (robots - 3*groups_of_3) // 5
new_robots = 5*groups_of_3 + 9*groups_of_5
robots += new_robots
robots -= robots // 3
print("Кінцева кількість роботів", robots)



Основним завданням є визначення кількості роботів на планеті через певну кількість років. Для цього можна скористатись рекурсивною функцією, яка обчислить цю кількість.
Ось приклад програми на мові Python, яка вирішує поставлену задачу:
pythondef calculate_robots(years):
if years <= 0:
return 0
if years == 1:
return 7
# Кожен раз об'єднуємо існуючі групи з 3 роботів в нові групи з 5 роботів
# і групи з 5 роботів в нові групи з 9 роботів
if years % 2 == 0:
return calculate_robots(years - 1) + 2 * calculate_robots(years - 2)
else:
return 2 * calculate_robots(years - 1) + calculate_robots(years - 2)
# Приклад використання
n = int(input("Введіть кількість років: "))
result = calculate_robots(n)
print(f"Кількість роботів через {n} років: {result}")
Ця програма використовує рекурсивний підхід для обчислення кількості роботів через певну кількість років. Вона приймає вхідне значення n
, що вказує на кількість років, і повертає кількість роботів, які будуть на планеті після цього періоду.
Важливо врахувати, що рекурсивна функція може бути неефективною для великих значень n
, оскільки вона буде повторно обчислювати одні й ті ж значення. Для оптимізації можна використовувати мемоїзацію (збереження проміжних результатів) або використовувати ітераційний підхід замість рекурсії.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili