使用 ASP.NET MVC JavaScript 的斐波那契算法
Fibonacci Algorithm with ASP.NET MVC JavaScript
正如标题所说,我正在尝试构建一个函数,用户输入一个整数并在没有 hard-codeing 的情况下获得 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";
}
<h2>Fibonacci</h2>
<input class="form-control" type="text" name="fibonacciTextbox" id="fibonacciTextbox" />
<br />
<button class="btn btn-primary" onclick="fibonacciFunction()">Sök</button>
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;
}
}
斐波那契数列是前两个数字的组合。您可以根据您的数字计算它,如果它是该序列的一部分,那么它是:
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;
}
斐波那契数可以通过检查 (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);
}
};
正如标题所说,我正在尝试构建一个函数,用户输入一个整数并在没有 hard-codeing 的情况下获得 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";
}
<h2>Fibonacci</h2>
<input class="form-control" type="text" name="fibonacciTextbox" id="fibonacciTextbox" />
<br />
<button class="btn btn-primary" onclick="fibonacciFunction()">Sök</button>
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;
}
}
斐波那契数列是前两个数字的组合。您可以根据您的数字计算它,如果它是该序列的一部分,那么它是:
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;
}
斐波那契数可以通过检查 (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);
}
};