Привет, ребята, у меня есть то, что мой мозг с трудом пытается понять. Моя домашняя работа - иметь «x» кроликов. Он рекурсивно вычисляет общее количество ушей кролика. У пронумерованных кроликов нормальные два уха, у нечетных пронумерованных кроликов 3 уха, но у каждого пятого кролика 1 ухо. Мой код завершения и работа ... Вот она ...Как внедряется метод рекурсии?
import java.util.*;
public class bunnies
{
public static int y;
public static void main(String[] args)
{
y = 0;
System.out.println(BunnyEars(3));
}
public static int BunnyEars(int x)
{
if ((x % 5) == 0 && x != 1 && x != 0)
return 1 + BunnyEars(x - 1);
else if ((x % 2) == 0 && x != 0)
return 2 + BunnyEars(x - 1);
else if ((x % 2) != 0 && x != 0)
return 3 + BunnyEars(x - 1);
else
return 0;
}
}
Мой вопрос в том, как в мире делает первый ряд ушей аккумулировать ко второму ряду ушей и так далее? Я думал об именовании глобальной переменной для int y = 0; , а затем
if ((x % 5) == 0 && x != 1 && x != 0)
y += 1;
else if ((x % 2) == 0 && x != 0)
y += 2;
else if ((x % 2) != 0 && x != 0)
y += 3;
else
return 0;
return y + BunnyEars(x -1);
Я думаю, что это имеет смысл, потому что у накапливается, но это не так. Можете ли вы, ребята, объяснить, как другой накапливается, а не y? Чин!
« Именование глобальной переменной для int y = 0 ». Java не имеет глобальных переменных. Лучшая идея здесь. Рекурсивные методы * передать все, что нужно для следующего вызова * in. – hexafraction
Если ваше задание специально предназначено для использования рекурсии, вам не следует использовать «глобальную» переменную. –
@hexafraction Я думаю, что «глобальный» он означает переменную класса. –