检查给定的数字是否属于node.js中的Fibonacci序列?

时间:2013-12-11 10:00:54

标签: javascript fibonacci

我需要在node.js中创建一个带有rest服务的Web服务器。服务器必须找到给定的输入是否是Fibonacci。如果是Fibonacci,请在Fibonacci序列中找到下一个数字。

所以我只想写一个简单的程序来查找斐波纳契数,但它不起作用。

以下是我尝试过的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");
}

1 个答案:

答案 0 :(得分:0)

最后,我找到了我自己的Fibonacci序列问题的解决方案。谢谢你的建议。

以下代码段正在为我工​​作。

var n = 4, fib;
var a = (5 * Math.pow(n, 2) + 4) 
var b=(5 * Math.pow(n, 2) - 4 )


var result = Math.sqrt(a) % 1==0;
var res = Math.sqrt(b) % 1==0;





//fixed this line
if(result  || res == true)  // checks the given input is fibonacci series
{

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");
}