我有这个类:斐波那契类总是返回0
public class Fibonacci
{
public static int Calculate(int x)
{
if (x <= 0)
{
return 0;
}
else
{
return Calculate(x - 1) + Calculate(x - 2);
}
}
}
每一个教程中,我做的,如果一个输入6一个应该得到8预期的结果,但是当我运行它,它总是返回0它是递归的,所以对我来说是有意义的,但他们如何得到8作为预期的结果?
你应该自己解决,你会学到更多。提示:请考虑计算(0)的作用和计算(1)的作用。如果你没有得到它,请使用调试器。 – 2009-12-24 11:17:00
Calculate方法不可能返回null - 返回类型是一个整数,它不能为空。我注意到,在文中你说它返回零 - 但在标题你说空。这些不是一回事 - 我建议你将标题更新为零。 – 2009-12-24 11:18:16
作为旁注:递归不是计算斐波那契数的最佳方法。例如,当你用这种方法计算f(n)时,则f(n-2)被计算两次。 F(n-4)计算5次!用f(6)试试看...... – 2009-12-24 12:25:01