用函数递归调用求Fibonacci数列第20项的值
时间: 2024-01-02 16:44:04 浏览: 34
好的,我来为您解答。
Fibonacci数列是指从第3项开始,每一项都等于前两项之和。即F(1)=1,F(2)=1,F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)。
以下是用递归函数求解Fibonacci数列第20项的Python代码:
```
def Fibonacci(n):
if n <= 0:
print("输入有误!")
elif n == 1 or n == 2:
return 1
else:
return Fibonacci(n-1) + Fibonacci(n-2)
print("Fibonacci数列第20项的值为:",Fibonacci(20))
```
输出结果为:Fibonacci数列第20项的值为:6765
希望能够帮助到您!
相关问题
c++用函数递归调用求Fibonacci数列第20项的值
可以使用递归函数来求解Fibonacci数列的第20项,如下所示:
```c
#include <stdio.h>
int fibonacci(int n) {
if (n == 0 || n == 1) {
return n;
} else {
return fibonacci(n-1) + fibonacci(n-2);
}
}
int main() {
int result = fibonacci(20);
printf("Fibonacci(20) = %d\n", result);
return 0;
}
```
在上面的代码中,`fibonacci` 函数使用了递归来计算Fibonacci数列的第n项,如果n为0或1,则直接返回n,否则递归调用 `fibonacci(n-1)` 和 `fibonacci(n-2)` 来计算第n项的值。在 `main` 函数中,我们调用 `fibonacci(20)` 来计算Fibonacci数列的第20项,并将计算结果打印出来。
用非递归的函数调用形式求斐波那契数列第n项
可以使用循环来实现非递归的函数调用形式求斐波那契数列第n项。
具体实现方法如下:
1. 定义两个变量a和b,分别表示斐波那契数列的前两项。
2. 判断n的值,如果n小于等于1,则直接返回n。
3. 如果n大于1,则使用循环计算斐波那契数列的第n项,每次循环将a和b的值更新为下一项的值。
4. 循环结束后,返回b的值即可。
代码如下:
```
def fibonacci(n):
if n <= 1:
return n
else:
a, b = , 1
for i in range(2, n+1):
a, b = b, a+b
return b
```
例如,调用fibonacci(6)会返回8,因为斐波那契数列的第6项是8。