Только начинаю изучать рекурсию, и я сбит с толку этой проблемой бактерий. По сути, я должен создать метод, который размножит бактерии в течение определенного количества часов. Шаблон / уравнение для этого - bacteriaLastHour + bacteriaLastHour * 2
. Например, через час будет 10 + 10 * 2 = 30 бактерий, а через 2 часа будет 30 + 30 * 2 = 90 бактерий.
Вот мой код:
public static int numBacteriaAlive(int hour)
{
int bacteriaLastHour = 10;
int total = 0;
// Write a base case
if(hour == 0){
return 10;
}
// Write a recursive call
total += (bacteriaLastHour * 2) + numBacteriaAlive(hour-1);
bacteriaLastHour *= 3;
return total;
}
Для часов 1 и 2 метод работает отлично, возвращая 10 и 30. Тем не менее, для других часов переменная bacryLastHour не меняется, и поэтому возвращаемое ею число отключено. Мой код возвращает 50 для 2 часов (должно быть 90), 70 для 3 часов (должно быть 270), et c. Любой совет поможет, спасибо!
Изменить: невозможно изменить значения параметров