Я пытаюсь закодировать слегка модифицированный Фибоначчи.Фибоначчи с использованием динамического программирования
n = (n-1)^2 + (n-2)
Здесь
Вот мой код,
public static int fibonacci(int first, int second, int n){
int[] memo = new int[n + 1];
for(int i=0; i<= n; i++){
memo[i] = -1;
}
return fibonacci(first, second, n, memo);
}
public static int fibonacci(int first, int second, int n, int[] memo){
if(n == first || n == second) return n;
if(memo[n] < 0) memo[n] = (int)Math.pow(fibonacci(first, second, n-1, memo), 2) + fibonacci(first, second, n-2, memo);
return memo[n];
}
Я пытался отладки его в несколько раз, но не могу показаться, чтобы выяснить, где проблема. Этот код дает следующее число, поэтому он дает F (6) для F (5). Любая помощь оценивается. Пожалуйста, поймите, я могу решить эту проблему в интерактивном режиме, но это не то, что я пытаюсь сделать. Я хочу сделать это, используя этот подход DP.
Можете ли вы изменить свой вопрос более конкретно с тем, что ваша проблема. Приведите примеры того, что вы ожидаете получить и что вы на самом деле получаете. – buczek
поместил некоторые комментарии в код, чтобы сделать его более понятным –