Javascript 检查给定的数字是否属于node.js中的斐波那契序列?
我需要在node.js中创建一个带有rest服务的web服务器。服务器必须找到给定的输入是否为斐波那契。如果它是斐波那契数列,则查找斐波那契数列中的下一个数 所以我只是写了一个简单的程序来寻找斐波那契数,但它不起作用 以下是我尝试的Javascript函数: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
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多谢你的建议。是的,很有意思,但对于像我这样的初学者来说,我找不到更好的东西。你能重新编写这个程序吗?