写一个递归斐波那契数列
时间: 2023-10-19 10:10:04 浏览: 100
好的,这是一个常见的面试题。以下是使用递归实现斐波那契数列的代码:
```
int fibonacci(int n){
if(n <= 1)
return n;
return fibonacci(n-1) + fibonacci(n-2);
}
```
在这个递归函数中,我们首先判断输入的参数是否小于等于1,如果是,则直接返回该值;否则,我们将递归调用函数自身来计算前两个斐波那契数的和(因为斐波那契数列的定义是每个数都是前两个数的和)。这个递归会一直循环下去,直到求出所需的斐波那契数。
相关问题
递归 斐波那契数列 python
以下是使用递归方法实现斐波那契数列的 Python 代码:
```python
def fibonacci(n):
if n <= 1:
return n
else:
return fibonacci(n-1) + fibonacci(n-2)
# 测试
print(fibonacci(10)) # 输出 55
```
在这个代码中,我们使用了递归来计算斐波那契数列。当我们调用 `fibonacci(n)` 函数时,如果 `n` 小于等于 1,我们就返回 `n`。否则,我们将递归调用 `fibonacci(n-1)` 和 `fibonacci(n-2)` ,并将它们的和作为结果返回。
c语言递归斐波那契数列
在C语言中,递归是一种常见的编程技术,尤其适用于像斐波那契数列这样的数学问题。斐波那契数列是一个数列,其中每个数字都是前两个数字之和,通常开始两项是0和1,例如:0, 1, 1, 2, 3, 5, 8, ...。
下面是一个简单的递归函数来计算斐波那契数列:
```c
#include <stdio.h>
// 递归函数,计算第n项的斐波那契数
int fibonacci(int n) {
if (n <= 1) { // 基础情况:n为0或1,返回n
return n;
} else {
// 递归情况:n大于1,返回前两项之和
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
int main() {
int n = 10; // 想要求第10项
printf("Fibonacci number at position %d is: %d\n", n, fibonacci(n));
return 0;
}
```
注意递归实现虽然简洁易懂,但对于大数值会非常慢,因为会有很多重复的计算。对于实际应用,考虑使用循环迭代或者动态规划优化。
阅读全文