在JavaScript中的Fibonacci数列

在JavaScript中的Fibonacci数列

本节将讨论Fibonacci数列以及我们如何在JavaScript中生成Fibonacci数列。

在JavaScript中的Fibonacci数列

斐波那契数列 是通过将前两个数字相加生成连续数字的一系列数。斐波那契数列的前两个数分别为 ,而后面的数是前两个数的和。

斐波那契数列的表示

Fn = (Fn -1) + (Fn – 2)

Fn表示前面两个项 (Fn – 1)(Fn – 2) 的和。这里Fn – 1是斐波那契数列的第一项,Fn – 2是第二项。

示例:

  • 数列的第一项是:0
  • 数列的第二项是:1
  • 数列的第三项是:(0 + 1) = 1
  • 数列的第四项是:(第二项 + 第三项) = (1 + 1) = 2
  • 数列的第五项是:(第三项 + 第四项) = 1 + 2 = 3

生成的数列是:0,1,1,2,3,… 类似地,我们可以找到下一个项的数列。

找到前n个数的斐波那契数列的步骤

以下是找到斐波那契数列的一系列步骤:

步骤1: 声明变量x,y,z,n,i

步骤2: 初始化局部变量x = 1,y = 1,i = 2

步骤3: 从用户读取一个数字

步骤4: 显示x和y的值

步骤5: 重复斐波那契数列的过程,直到i > n

  • z = x + y
  • 显示z的值
  • x = y,y = z
  • i = i + 1

步骤6: 停止斐波那契数列的执行

获取前n项的斐波那契数列

让我们考虑一个示例,使用for循环在JavaScript中得到前n项的斐波那契数列。

Program1.html

<html>
<head>
<title> Fibonacci Series in JavaScript </title>
</head>
<body>
<script>
// declaration of the variables
var n1 = 0,  n2 = 1, next_num, i;
var num = parseInt (prompt (" Enter the limit for Fibonacci Series "));
document.write( "Fibonacci Series: ");
for ( i = 1; i <= num; i++)
{  document.write (" <br> " +  n1); // print the n1
    next_num = n1 + n2; // sum of n1 and n2 into the next_num

    n1 = n2; // assign the n2 value into n2
    n2 = next_num; // assign the next_num into n2
}

</script>
</body>
</html>

输出:

当我们执行上面的程序时,它会显示给定的图片。有一个提示框来定义斐波那契数列的限制,然后点击确定按钮继续。

在JavaScript中的Fibonacci数列

之后,它显示以0和1开头的斐波那契数列。下一个项是其前两个项的相加,如下所示。

在JavaScript中的Fibonacci数列

获取前8个项的斐波那契数列

让我们来考虑一个示例,使用for和if语句在JavaScript中获取前8个项的斐波那契数列。

Program3.html

<html>
<head>
<title>
Fibonacci Series in JavaScript </title>
</head>
<body>
<script type = "text/javascript">
// declaration of the variables
var number = 8; 
var num1 = 0, num2 = 1;
var next_term = 0;
document.write( " Fibonacci series of the number 8: " + "<br>")
for (i = 1; i < number; i++) // use for loop to iterate the series till given number 
{
if ( i <= 1) 
next_term = i; // assign the variable i to next_term
else
{
next_term = num1 + num2; // sum the num1 and num2
num1 = num2;
num2 = next_term;
}
// print the sum of the series
document.write( " Adding " + num1 + " and " + next_term + " = " + (num1 + num2) + "<br>" );

}
</script>
</body>
<html>

输出:

在JavaScript中的Fibonacci数列

获取斐波那契数列的前7个数字的和

让我们通过使用函数和for循环的JavaScript示例来计算斐波那契数列的和。

Simple2.html

<html>
<head>
<title>
Fibonacci Series in JavaScript </title>
</head>
<body>
<script type = "text/javascript">
function fibo( num)
{
var n1 = 0; // declaration of variables n1, n2, i and temp.
var n2 = 1;
var temp;
var i = 0;
for (i = 0; i < num; i++)
{
temp = n1 + n2; // store the sum of n1 and n2 in temp variable.
n1 = n2; // assign the n2 value into the n1 variable
n2 = temp; // assign the new value of temp into n2 variable
}
return n2;
}
// get a number from the user
const f1 = parseFloat (prompt (' Enter a number to get the sum of Fibonacci Series '));
window.alert( "The sum of Fibonacci Series is: " +fibo(f1) );  /* print the sum of series */

</script>
</body>
</html>

输出

当以上代码被执行时,它会显示一个提示框,要求输入一个数字来返回斐波那契数列的和。

在JavaScript中的Fibonacci数列

在这里,我们将7作为输入返回系列和,如下所示。

在JavaScript中的Fibonacci数列

点击”确定”按钮。

在JavaScript中的Fibonacci数列

在上面的图像中,它返回前7个项的和为21。

使用递归函数获取斐波那契数列

让我们通过使用递归函数来考虑一个在JavaScript中获取斐波那契数列的示例。

Recursion.html

<html>
<head> 
<title> 
Fibonacci Series using Recursion in JavaScript. </title>
</head>
<body style= "text-align: center;">
<h2> Fibonacci Series in JavaScript Using Recursion </h2>

<script>
// Using Recursion to find the Fibonacci Series.
function recur(num)
{
// when num is equal to 1, it returns 0 and 1
if (num == 1)
{
return [0, 1];
}
else
{
// it continuously calls the recur function till n-1
total = recur (num - 1);
/* push function add previous two terms and returns store the result into the total variable. */ 
total.push( total[ total.length - 1] + total[ total.length - 2]);
return total;
}

}
// Series of first 12 terms using Recursion.
document.write("Fibonacci Series of f(12) in JavaScript: " + recur( 12 ) + "<br>");
</script>
</body>
</html>

输出

在JavaScript中的Fibonacci数列

在上面的程序中,我们使用递归函数创建了斐波那契序列,它避免了循环来显示序列。递归函数不断调用 recur() 函数来打印序列,直到满足 recur(12) 。在每次迭代中, recur () 函数的值减 1 并将该值存入 total 变量中。

以相反的顺序获取斐波那契序列

让我们通过使用 for 循环来考虑一个以相反顺序获取斐波那契序列的示例。

Reverse.html

<html>
<head>
<title>
Reverse Fibonacci Series
</title>
</head>
<body style= "text-align: center;">
<h2> Fibonacci Series in Reverse Order </h2>
<script>
var a = 1, b = 0, res, num;
num = prompt( "Enter the number of terms ");
document.write ("Fibonacci Series of " + num + " terms  is " );
for ( var i =0; i < num; i++)
{
document.write ("  " + b);
res = a + b;
a = b;
b = res;
}
document.write( "" + "<br>");
document.write( "Fibonacci Series of " + num + " terms in Reverse Order is " + "<br>"); 
// print the series in reverse order
for ( i = 0; i < num; i++)
{
document.write( "  " +  a);
res = b - a;
b = a;
a = res;
}
</script>
</body>
</html>

输出

当上述代码被执行时,它会显示一个提示框,要求用户输入一个数字。

在JavaScript中的Fibonacci数列

在这里,我们输入了10作为输入,然后点击确定按钮。之后,它按照升序和降序生成了前10个项的斐波那契数列。

在JavaScript中的Fibonacci数列

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程