Определить, сколько клеток (амеб) будет через n часов - C (СИ)
Формулировка задачи:
Вот задача, её нужно решить с помощью рекурсии : Одноклеточная амеба делится каждые 3 часа на две клетки. Определить, сколько клеток будет через n часов.
Я не понимаю зачем и как здесь применять рекурсию ,если можно просто в цикле каждые 3 часа умножать на два..
Помогите пожалуйста кто-нибудь решить её через рекурсию..
Заранее благодарен(с меня+)!
Решение задачи: «Определить, сколько клеток (амеб) будет через n часов»
textual
Листинг программы
#include <stdio.h> size_t population(size_t hours) { return ( hours > 2 ) ? 2 * population(hours - 3) : 1; } int main(void) { size_t hours; while ( printf("Number of hours: ") && scanf("%lu", &hours) == 1 ) printf("Population: %lu amoebas.\n", population(hours)); return 0; }
Объяснение кода листинга программы
- Включаем стандартную библиотеку ввода-вывода
- Определяем функцию с именем population, которая принимает целое число (количество часов) и возвращает размер популяции (количество амеб) через n часов
- В функции main считываем количество часов, пока пользователь не введет некорректные данные
- Вызываем функцию population с переданным количеством часов и выводим результат на экран
- Возвращаем 0, чтобы указать, что программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д