<script>
//斐波纳契数列 1 1 2 3 5 8...
/**方式1
* f s t
* 1 1 2 3 5 8
* f s t
**/
var n = parseInt(prompt('请输入一个数字n'));
var first = 1,
second = 1,
third;
if (n > 2) {
for (var i = 0; i < n - 2; i++) {
third = first + second;
first = second;
second = third;
}
console.log(third);
} else {
console.log(1);
}
//方式2 函数
//var n = parseInt(prompt('请输入你想求第n个斐波那契数列'));
// function fibonacci(n) {
// var n1 = 1;
// var n2 = 1;
// var sum = n2;
// for (var i = 1; i < n; i++) {
// sum = n1 + n2;
// n1 = n2;
// n2 = sum;
// }
// return sum;
// }
// console.log(fibonacci(n));
//方式3 递归1
// function fib(n) {//n表示第几的个斐波那契数
// if (n === 1 || n === 2) { //判断项所在位置,如果为第一第二项,返回1
// return 1;
// } else {
// return fib(n - 1) + fib(n - 2); //位置在第三项及以后,返回前两项和
// }
// }
// console.log(fib(n));
//方式3 递归2
//定义存储斐波那契数列项数组
//var result = [];
//function sum(n) {
//首先判断数组内有没有当前斐波那契数列项,如果有直接从数组获取;没有则将该项push进数组
//if (result[n] !== undefined) {
// return result[n];
//} else {
//if (n === 1 || n === 2) {
// result[n] = 1;
// return 1;
//} else {
// result[n] = sum(n - 1) + sum(n - 2);
// return result[n];
// }
// }
// }
// console.log(sum(n));
</script>
07-03
1424
08-08
383
08-10
409