JavaScript 打印斐波那契数列

JavaScript 打印斐波那契数列

假设在一个班级中,老师要求1号学生在黑板上写0,2号学生写1,并要求其他学生将前两个学生的数字相加写在黑板上。写在黑板上的数列将会是0,1,1,2,3,5,8,………。

然后老师告诉学生,这个数列被称为 斐波那契数列 。可以用下面的等式表示:

Fn = Fn-1 + Fn-2

其中 F0=1 而 F1=1。斐波那契数列是以下整数序列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ……在数学术语中,斐波那契数列 Fn 定义为以下递归关系:

Fn = Fn-1 + Fn-2 with seed values F0 = 0 and F1 = 1

示例:

Input : 5 
Output : 8

Input :8
Output :34

因为第一个斐波那契数是0,第二个是1。此外,我们知道第n个斐波那契数是n-1和n-2的和。因此,要得到第n个斐波那契项,我们可以遵循fib(1)=0 fib(2)=1 fib(3)=fib(2)+fib(1) fib(4)=fib(3)+fib(2) …. fib(n)=fib(n-1)+fib(n-2)

有三种方法来打印斐波那契数列,具体如下:

  • 使用 for循环
  • 使用 while循环
  • 使用递归

示例: 此示例使用for循环来打印斐波那契数列。

function fibonacci(num) {
    let num1 = 0;
    let num2 = 1;
    let sum;
    let i = 0;
    for (i = 0; i < num; i++) {
        sum = num1 + num2;
        num1 = num2;
        num2 = sum;
    }
    return num2;
}
 
console.log("Fibonacci(5): " + fibonacci(5));
console.log("Fibonacci(8): " + fibonacci(8));

输出:

Fibonacci(5): 3
Fibonacci(8): 13

示例: 这个示例使用while循环打印斐波那契数列。

function fibonacci(num) {
    if (num == 1)
        return 0;
    if (num == 2)
        return 1;
    let num1 = 0;
    let num2 = 1;
    let sum;
    let i = 2;
    while (i < num) {
        sum = num1 + num2;
        num1 = num2;
        num2 = sum;
        i += 1;
    }
    return num2;
}
 
console.log("Fibonacci(5): " + fibonacci(5));
console.log("Fibonacci(8): " + fibonacci(8));

输出:

Fibonacci(5): 3
Fibonacci(8): 13

使用递归方法: 我们知道第n个斐波那契数是第n-1个和第n-2个数的和,而第n-1个数是第n-2个和第n-3个数的和。所以,要得到第n个斐波那契数,我们可以按照fib(n)=fib(n-1)+fib(n-2)的方法,继续计算fib(n)=fib(n-2)+fib(n-3)+fib(n-3)+fib(n-4) …. fib(n)=fib(1)+fib(0)+fib(1)+fib(0)+fib(1)+fib(0)….fib(1)+fib(0) [含有fib(1)和fib(0)的和的项] fib(1)=0 fib(2)=1

示例: 此示例演示了上述方法的用法。

function fibonacci(num) {
    if (num == 1)
        return 0;
    if (num == 2)
        return 1;
    return fibonacci(num - 1) + fibonacci(num - 2);
}
console.log("Fibonacci(5): " + fibonacci(5));
console.log("Fibonacci(8): " + fibonacci(8));

输出:

Fibonacci(5): 3
Fibonacci(8): 13

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程