Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查给定的数字是否属于node.js中的斐波那契序列?_Javascript_Fibonacci - Fatal编程技术网

Javascript 检查给定的数字是否属于node.js中的斐波那契序列?

Javascript 检查给定的数字是否属于node.js中的斐波那契序列?,javascript,fibonacci,Javascript,Fibonacci,我需要在node.js中创建一个带有rest服务的web服务器。服务器必须找到给定的输入是否为斐波那契。如果它是斐波那契数列,则查找斐波那契数列中的下一个数 所以我只是写了一个简单的程序来寻找斐波那契数,但它不起作用 以下是我尝试的Javascript函数: var n = 5,s, a, fib; function isPerfectSquare(s) { var a = Math.sqrt(s); return a * a == s; } function isFi

我需要在node.js中创建一个带有rest服务的web服务器。服务器必须找到给定的输入是否为斐波那契。如果它是斐波那契数列,则查找斐波那契数列中的下一个数

所以我只是写了一个简单的程序来寻找斐波那契数,但它不起作用

以下是我尝试的Javascript函数:

var n = 5,s, a, fib;

function isPerfectSquare(s)
{
    var a = Math.sqrt(s);
    return a * a == s;
}    
function isFibonacci(n)
{
    s = (5 * Math.pow(n, 2) + 4 || 5 * Math.pow(n, 2) - 4)
    return s;
}

//How to fix this line. I don't know how to check perfect square conditions 
if(isPerfectSquare(isFibonacci(n)) || isPerfectSquare(isFibonacci(n)))
{
    fib = Math.round(n * 1.618); // finds the next fibonacci series of given input
    console.log("The next Fibonacci number is " + fib);
}    
else
{
    console.log("The given number is not a fibonacci number");
}

最后,我找到了我自己的斐波那契数列问题的解决方案。谢谢你们的建议,伙计们

下面的代码片段对我有用

函数是斐波那契(n){
var fib,
a=(5*数学功率(n,2)+4),
b=(5*数学功率(n,2)-4)
var result=Math.sqrt(a)%1==0,
res=Math.sqrt(b)%1==0;
//修正了这条线
if(result | | res==true)//检查给定输入是否为斐波那契级数
{
fib=Math.round(n*1.618);//查找给定输入的下一个fibonacci序列
log(“下一个斐波那契数是”+fib);
}否则{
log(`给定的数字${n}不是斐波那契数');
}
}
$('#fib')。关于(“键控更改”,函数(){
isFibonacci(+this.value)
})


根据您的定义,什么是完美正方形?边的长度应该是非十进制数吗?不,它应该是十进制数。
isPerfectSquare
根本不起作用,请尝试使用=
函数(x){return x>=0&!(Math.sqrt(x)%1);}
之类的方法。另外,node.js很好,但在处理数字或繁重的cpu工作时效果不佳。一个典型的例子是
0.1+0.3
,但你可以用谷歌搜索它来查看更现实的问题。我们可以使用比奈公式来找到给定的数字是斐波那契。比奈的公式是当且仅当(5*n^2+4)或(5*n^2-4)是完美正方形或两者都是。@b多谢你的建议。是的,很有意思,但对于像我这样的初学者来说,我找不到更好的东西。你能重新编写这个程序吗?