javaScript递归练习

题目

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>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值