【发布时间】:2014-01-01 23:19:56
【问题描述】:
我正在尝试创建一个记忆斐波那契程序来开始学习动态编程。然而,当我运行这个程序时,它总是返回 0。
private static Map<Integer, Long> stored = new HashMap<>();
static
{
stored.put(0, (long) 0);
stored.put(1, (long) 0);
}
public static long memo(int n)
{
if (n==0)
{
return stored.get(0);
}
else if (n==1)
{
return stored.get(1);
}
else if (stored.containsKey(n))
{
return stored.get(n);
}
else
{
long f = ( memo(n-1) + memo(n-2) );
stored.put(n, f);
return f;
}
}
【问题讨论】:
-
因为你没有调试过?
-
另外,您可以使用
0L代替(long) 0。
标签: java algorithm dynamic-programming