基于ASP.NET MVC JavaScript的斐波那契算法
正如标题所说,我正在尝试构建一个函数,用户输入一个整数,如果它是斐波那契数或不是硬编码,就会收到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;
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.Changevar 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);
}
};