【发布时间】:2016-08-07 19:16:56
【问题描述】:
我正在尝试编写稍微修改的斐波那契。
这里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(5) 产生 F(6)。任何帮助表示赞赏。 请理解,我可以交互地解决这个问题,但这不是我想要做的。我想用这种 DP 方法来做。
【问题讨论】:
-
您能否编辑您的问题以更具体地说明您的问题。举例说明您期望获得什么以及您实际获得什么。
-
在代码中加入一些 cmets 使其更易理解
标签: java recursion dynamic-programming fibonacci