js非递归实现斐波那契数列
时间: 2023-09-26 18:14:49 浏览: 97
Sure, here's an example of non-recursive implementation of Fibonacci sequence in JavaScript:
function fibonacci(n) {
if (n < 1) {
return 0;
}
let a = 0, b = 1;
for (let i = 1; i < n; i++) {
let next = a + b;
a = b;
b = next;
}
return b;
}
console.log(fibonacci(10)); // outputs 55
相关问题
c语言非递归实现斐波那契数列
斐波那契数列是指从第三项开始,每一项都等于前两项之和。要使用C语言非递归方式实现斐波那契数列,可以使用循环结构来计算每一项的值。
具体实现代码如下:
```c
#include <stdio.h>
int fibonacci(int n) {
int first = 0, second = 1, result = 0;
if (n == 0 || n == 1) {
return n;
}
for (int i = 2; i <= n; i++) {
result = first + second;
first = second;
second = result;
}
return result;
}
int main() {
int n = 10;
//假设要计算斐波那契数列的第10项
int fib = fibonacci(n);
printf("斐波那契数列第%d项为:%d\n", n, fib);
return 0;
}
```
以上代码中,我们使用了三个变量来记录计算过程中的中间值:`first`,`second`和`result`。首先判断输入的项数是否是前两项,如果是,则直接返回对应的值。接下来使用循环来计算第`n`项的值,每次迭代都将`result`赋值为前两项的和,并将`first`和`second`更新为当前项的值,最后返回`result`即为第`n`项的结果。
以上就是使用C语言非递归方式实现斐波那契数列的方法。
java用递归和非递归实现斐波那契数列,并输出
在Java中,我们可以使用递归和循环两种常见的方法来实现斐波那契数列。
**递归实现:**
递归是一种直接将问题分解成更小版本自身的问题求解方式。对于斐波那契数列,每个数字是前两个数字之和。递归版代码如下:
```java
public class FibonacciRecursion {
public static int fibonacci(int n) {
if (n <= 1) {
return n;
} else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
public static void main(String[] args) {
int num = 10; // 想要计算的第几个斐波那契数
for (int i = 0; i < num; i++) {
System.out.print(fibonacci(i) + " ");
}
}
}
```
**非递归实现(循环):**
非递归方法通常效率更高,因为它避免了重复计算。这里使用迭代的方式实现:
```java
public class FibonacciNonRecursion {
public static int fibonacci(int n) {
if (n <= 1) {
return n;
}
int a = 0, b = 1, c = 0;
for (int i = 2; i <= n; i++) {
c = a + b;
a = b;
b = c;
}
return c;
}
public static void main(String[] args) {
int num = 10; // 想要计算的第几个斐波那契数
for (int i = 0; i < num; i++) {
System.out.print(fibonacci(i) + " ");
}
}
}
```
阅读全文