Определить, сколько клеток (амеб) будет через 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;
}

Объяснение кода листинга программы

  1. Включаем стандартную библиотеку ввода-вывода
  2. Определяем функцию с именем population, которая принимает целое число (количество часов) и возвращает размер популяции (количество амеб) через n часов
  3. В функции main считываем количество часов, пока пользователь не введет некорректные данные
  4. Вызываем функцию population с переданным количеством часов и выводим результат на экран
  5. Возвращаем 0, чтобы указать, что программа успешно завершилась

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.571 из 5
Похожие ответы