Я попытался запоминать рекурсивный метод Фибоначчи, и он возвращает правильное число.Тем не менее, он не появляется быстрее, чем раньше.Я предполагаю, что это потому, что я не использую массив должным образом, чтобы отслеживать, и я все еще делаю избыточные вызовы.Подскажите, пожалуйста, что изменить, чтобы я мог правильно его использовать?
Не уверен, имеет ли это значение, но в глобальной области объявлено fibIndex[]
и установлено значение [index + 1] восновной метод после получения ввода.
public static BigInteger fibRec(int index)
{
BigInteger results;
if (index <= 2)
{
results = BigInteger.ONE;
}
else
{
if (fibIndex[index] != null)
{
results = fibIndex[index];
}
else
{
results = fibRec(index - 1).add(fibRec(index - 2));
}
}
return results;
}