JS函数实现斐波那契数列
斐波那契数列由 1 和 1 开始,之后每一项都等于前两项之和。
斐波那契数列:1、1、2、3、5、8、13、21、34、55……。
怎么实现它呢?先给一个文本框,里面写斐波那契数列总个数,这里我用了onkeydown事件(按下键盘按键执行)。
<div onkeydown="onreturn()">
<span>斐波那契数列:1,1,2,3,5,8,13,21,34,55……</span>
<br />
<input id="text"/>
<br />
<textarea id="Fibonacci"></textarea>
</div>
按键执行的方法中先判断了按下按键的unicode是不是13,也就是Enter(回车键),只有按下Enter(回车键),才会获取文本框的值,并执行斐波那契数列的方法。
function onreturn() {
if (window.event.keyCode == 13) {//回车键
var index = document.getElementById("text").value;
Fibonacci(index);
}
}
斐波那契数列的方法以斐波那契数列的总数为参数,方法中先声明空字符串(用来拼接数字)、斐波那契数列的第一项数字1、第一项数字的前第一项0、第一项数字的前第二项0。通过for循环计算出每项的数字并拼接数字得到斐波那契数列,最后输出斐波那契数列。
function Fibonacci(index) {
var A = "";//空字符串
var f = 1;//参数1(每一项的数字,第一项是1)
var f1 = 0;//参数0(每一项的前第一项,第一项的前第一项没有,就是0)
var f2 = 0;//参数0(每一项的前第二项,第一项的前第二项没有,就是0)
for (i = 0; i < index; i++) {
A = A + f + ",";//拼接数字
f2 = f1;//每一项的前第二项
f1 = f;//每一项的前第一项
f = f1 + f2;//每一项的数字,前两项相加
}
document.getElementById("Fibonacci").value = A;//输出斐波那契数列
}
效果图: