我需要在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");
}
答案 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");
}