好的,我最初写了一个简单的代码来从基于用户输入的一系列返回Fibonacci数..斐波纳契系列 - 递归求和
N = 5将产生3 ..
static int fibonacci(int n) {
if (n == 1)
return 0;
else if (n == 2)
return 1;
else
return (fibonacci(n - 1) + fibonacci(n - 2));
}
我正在考虑修改代码来返回系列的总和,而不仅仅是返回系列中的值,并且试图执行我不小心将1加到return语句的总和,令我惊讶的是,它正确地返回了总和。
对于n = 5,以下代码将返回7。
我不知道这是计算和正确的方式...
我仍然无法找出级数求和是如何工作的,如果我加1,可有人请解释?
static int fibonacci(int n) {
if (n == 1)
return 0;
else if (n == 2)
return 1;
else
return (fibonacci(n - 1) + fibonacci(n - 2)+(1));
}
编辑:
对于斐波那契series..0,1,1,2,3,5,8,13,21,34,55,89,144 ....
我尝试了一些随机N
N = 13
该函数返回376
0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 + 55 + 89 + 144 = 376
N = 10
该函数返回88
0 + 1 + 1 + 2 + 3 + 5 + 8 + 13 + 21 + 34 = 88
如果n = 5,您的结果应该是11,而不是7.(1 + 2 + 3 + 5 = 11)。你想要计算什么? – niculare 2013-03-13 19:48:56
我从0开始不是1 ...所以0 + 1 + 1 + 2 + 3 ... – Learner 2013-03-13 19:49:59
它是否适用于系列中的下一个数字?如果不是,那么算法是错误的。 – 2013-03-13 19:50:50