题目
1.上楼梯问题:
⼀次只能上1个台阶或者2个台阶。爬到第n层台阶的有多少种爬法。
不死兔⼦:
2.⼀对⼩兔⼦,4个⽉能⻓⼤,⻓⼤以后每个⽉⽣⼀对⼩兔⼦,求第n个⽉有多少对兔⼦。
上楼梯问题
它一次只能生一层楼梯或者2层楼梯,所以在1层台阶的爬法就只有上1层台阶这一种,2层台阶就只有上2层台阶这一种。从第3层台阶开始就开始有不同的爬法,它可以是先上1层台阶再上2层台阶,也可以是先上2层台阶在上1层台阶,我们可以得出f(3)=f(2)+f(1)。同理,第1000层台阶也是f(1000)=f(999)+(998),即是f(n)=f(n-1)+f(n-2)。
所以代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dgui</title>
<script type="text/javascript">
function f(n){
if(n==1)
return 1
if(n==2)
return 2
else
return f(n-2)+f(n-1)
}
// console.log(f(3))
// alert(f(3))
alert(f(20))
</script>
</head>
<body>
</body>
</html>
不死兔子问题
一对小兔子,4个月才能长大,则是在第4个月初就可以进行繁殖,所以在第1个月,第2个月,第3个月,它依旧是只有一对兔子。第4个月就有两对,第5个月有3对,我们可以把数列列出来,很容易发现他是f(n)=f(n-1)+f(n-2)。
js代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>dgui</title>
<script type="text/javascript">
function f(n){
if(n==1)
return 1
if(n==2)
return 1
if(n==3)
return 1
else
return f(n-2)+f(n-1)
}
alert(f(20))
</script>
</head>
<body>
</body>
</html>