基于ASP.NET MVC JavaScript的斐波那契算法

基于ASP.NET MVC JavaScript的斐波那契算法,javascript,asp.net,.net,asp.net-mvc,fibonacci,Javascript,Asp.net,.net,Asp.net Mvc,Fibonacci,正如标题所说,我正在尝试构建一个函数,用户输入一个整数,如果它是斐波那契数或不是硬编码,就会收到JavaScript警报。到目前为止,我已经尝试过了,它是有效的,但是否有一种算法可以生成所有斐波那契数而不是这些选定数 代码: 控制器: using System; using System.Linq; using System.Web.Mvc; using System.Xml.Linq; using Andre_Kordasti___Programmeringsuppgift.Models;

正如标题所说,我正在尝试构建一个函数,用户输入一个整数,如果它是斐波那契数或不是硬编码,就会收到JavaScript警报。到目前为止,我已经尝试过了,它是有效的,但是否有一种算法可以生成所有斐波那契数而不是这些选定数

代码:

控制器:

using System;
using System.Linq;
using System.Web.Mvc;
using System.Xml.Linq;
using Andre_Kordasti___Programmeringsuppgift.Models;

namespace Andre_Kordasti___Programmeringsuppgift.Controllers
{
    public class HomeController : Controller
    {

     public ActionResult Fibonacci()
        {
            return View();
        }
    }
}
视图:

@{
Layout=“~/Views/Shared/_Layout.cshtml”;
}
斐波那契

斯科克
JavaScript:

  function fibonacciFunction()
{
    var num = document.getElementById('fibonacciTextbox').value

    function isFibonacci(num)
    {
        var first = 0;
        var second = 1;
        var third = first + second;

        if (num === first)
        {
            return true;
            alert('Fibonacci Number!')
        }

        while (third <= num)
        {
            if (third === num)
            {
                alert('Fibonacci Number!')
                return true;
            }

            first = second;
            second = third;
            third = first + second;
        }

        alert('Not Fibonacci Number!')

        return false;
    }
}
函数fibonacciFunction()
{
var num=document.getElementById('fibonacciTextbox')。值
函数为Fibonacci(num)
{
var first=0;
var秒=1;
第三个变量=第一个+第二个;
如果(num==第一个)
{
返回true;
警报('斐波那契数!')
}

而(第三个斐波那契序列是前两个数字的组合。您可以将其计算到您的数字,如果它是该序列的一部分,则它是:

function isFibonacci (num){
  var first = 0;
  var second = 1; 
  var third = first + second;

  if(num === first){return true;}    

  while(third <= num)
  {
    if(third === num )
    {
       return true;
    }

    first = second;
    second = third; 
    third = first + second;
  }

   return false;

}
函数为fibonacci(num){
var first=0;
var秒=1;
第三个变量=第一个+第二个;
如果(num==first){return true;}

而(第三斐波那契数可以通过检查(5*n*n+4)或(5*n*n-4)或两者的结果是否为完美平方来确定

function isFibonacci(num) {
    return isPerfectSquare(5*num*num + 4) || isPerfectSquare(5*num*num - 4);
}

function isPerfectSquare(n) {
    return Math.sqrt(n) % 1 === 0;
}

注意:尽管有一些方法可以通过执行递归函数或创建循环来实现这一点,但这些方法对于大量数据来说效率低下。

递归查找斐波那契级数-

var recursive = function(n) {
if(n <= 2) {
    return 1;
} else {
    return this.recursive(n - 1) + this.recursive(n - 2);
}
};
var recursive=函数(n){

如果(n您只需将前面两个数字相加,即可找到斐波那契序列。0、1、1、2、3、5、8、13、21、34……您可以创建一个递归调用自身的函数。我编辑了代码,但它仍然不起作用,我做错了什么?所以我做了这件事,但它不起作用,我编辑了我的JavaScript代码,请看下面,我做错了什么?@AndreKoroshKordasti.Change
var num=document.getElementById('fibonacciTextbox')。value
改为
var num=+document.getElementById('fibonacciTextbox')。value;
并调用要执行的函数:
isFibonacci(num);
结尾处一个非常好的函数!
var recursive = function(n) {
if(n <= 2) {
    return 1;
} else {
    return this.recursive(n - 1) + this.recursive(n - 2);
}
};