<script>
// 算法题
// 题1:斐波那契数列:1、1、2、3、5、8、13、21...
//
// 一.斐波那契数列第n项的值
//
// 方法一
//递归的写法
function a(n){
if(n <= 2) {
return 1;
}
return a(n-1) + a(n-2);
}
alert(a(8));
// 方法二
//通过迭代的方式
function b(n){
var num1 = 1;
var num2 = 1;
var num3 = 0;
if(n<=0){
return 0;
}else if(n <= 2) {
return 1;
}else{
for(var i=0; i <n-2; i++){
num3 = num1 + num2;
num1 = num2;
num2 = num3;
}
}
return num3;
}
alert(b(8));
// 二.斐波那契数列前n项之和
function c(n){
var num1 = 1;
var num2 = 1;
var num3 = 0;
var sum=2;
if(n<=0){
return 0;
}else if(n <= 2) {
return n;
}else{
for(var i=0; i <n-2; i++){
num3 = num1 + num2;
num1 = num2;
num2 = num3;
sum+=num3;
}
return sum;
}
}
alert(c(8));
</script>