javascript求斐波那契数列的第n项的值, 要求能算出第50项, 第100项的值.
时间: 2024-05-20 11:17:59 浏览: 75
斐波那契数列是指每个数都是前两个数之和的数列,例如 0、1、1、2、3、5、8、13、21、34、55、89、144……以此类推。要求斐波那契数列的第n项的值,可以使用递归或遍历的方式。以下是一个可以计算斐波那契数列第n项的 JavaScript 代码示例:
function fibonacci(n) {
if (n <= 0) {
return 0;
} else if (n === 1) {
return 1;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
console.log(fibonacci(50)); // 输出 12586269025
console.log(fibonacci(100)); // 输出 354224848179261915075
需要注意的是,当n比较大时,递归会造成性能问题。可以通过备忘录算法或动态规划等方式优化算法。
相关问题
用Javascript求斐波那契数列第n项的值
在JavaScript中,我们可以使用循环或递归来计算斐波那契数列的第n项。以下是两种常见方法:
**使用循环(迭代法):**
```javascript
function fibonacci(n) {
if (n <= 0) return 0;
else if (n === 1) return 1;
let fib = [0, 1];
for (let i = 2; i < n; i++) {
fib[i] = fib[i - 1] + fib[i - 2];
}
return fib[n - 1]; // JavaScript数组索引从0开始,所以n-1对应实际位置
}
```
**使用递归(递归法,虽然效率较低,但对于较小的n更直观):**
```javascript
function fibonacciRecursive(n) {
if (n <= 0) return 0;
else if (n === 1) return 1;
else return fibonacciRecursive(n - 1) + fibonacciRecursive(n - 2);
}
```
c++求斐波那契数列第n项值算法
在 C++ 中计算斐波那契数列的第 n 项值,可以使用循环或者递归的方式。这里提供两种常见的实现:
**1. 使用循环(迭代法):**
```cpp
int fibonacci(int n) {
if (n <= 0) return 0;
if (n == 1 || n == 2) return 1;
int fib = 1, prevFib = 1;
for (int i = 3; i <= n; ++i) {
int temp = fib;
fib += prevFib;
prevFib = temp;
}
return fib;
}
```
**2. 使用递归(虽然简洁但效率较低,因为有大量重复计算):**
```cpp
int fibonacci(int n) {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
```
**相关问题--:**
1. 为什么递归方法计算斐波那契数列效率不高?
2. 迭代法是如何避免递归的重复计算问题的?
3. 斐波那契数列在计算机科学中有哪些应用场景?
阅读全文