您需要在字典中区分已经计算出的数字和未计算出的数字,您现在不知道:您 总是 重新计算数字。
if (n == 0) { // special case because fib(0) is 0 return dictionary[0];}else { int f = dictionary[n]; if (f == 0) { // number wasn't calculated yet. f = fibonacci(n-1) + fibonacci(n-2); dictionary[n] = f; } return f;}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)