用js递归写出斐波那契数列
时间: 2023-11-20 21:24:56 浏览: 32
function fibonacci(n) {
if (n < 1) {
return 0;
} else if (n === 1 || n === 2) {
return 1;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
// 测试
console.log(fibonacci(1)); // 1
console.log(fibonacci(2)); // 1
console.log(fibonacci(3)); // 2
console.log(fibonacci(4)); // 3
console.log(fibonacci(5)); // 5
console.log(fibonacci(6)); // 8
console.log(fibonacci(7)); // 13
console.log(fibonacci(8)); // 21
console.log(fibonacci(9)); // 34
相关问题
用非递归函数写出斐波那契数列
好的,以下是用非递归函数实现斐波那契数列的代码:
```python
def fibonacci(n):
if n < 0:
return "Invalid input"
elif n == 0 or n == 1:
return n
else:
a, b = 0, 1
for i in range(2, n+1):
c = a + b
a, b = b, c
return b
```
这里用到了迭代的思想,从前往后计算每一个斐波那契数。当n为0或1时,直接返回n作为第n个斐波那契数;否则,从第二项开始循环计算每一项,每一项都是前两项的和。最后返回第n项的值。
用递归函数写斐波那契数列
斐波那契数列是一个非常经典的数列,每一项都是前两项的和,即F(n) = F(n-1) + F(n-2),其中F(0) = 0,F(1) = 1。递归函数是一种非常自然的实现方式,代码如下:
```
int fibonacci(int n) {
if (n <= 1) {
return n;
} else {
return fibonacci(n-1) + fibonacci(n-2);
}
}
```
这个递归函数的思路非常简单,当n小于等于1时,直接返回n;否则,返回n-1和n-2的斐波那契数列之和。
需要注意的是,递归实现斐波那契数列的效率并不高,因为递归函数会重复计算很多子问题。如果需要计算大量的斐波那契数列,最好使用迭代方式或者记忆化搜索等方法进行优化。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)