递归示例:斐波那契数列和汉诺塔

斐波那契数列:

<script>
// 1>斐波那契数列(输入数字,打印出斐波那契数列的这一项)
		   function fb(n){
			   if(n == 1 || n == 2){
				return 1;
				}
				return fb(n-2) + fb(n-1);
		   }
</script>

当在控制台调用函数时会出现结果:

汉诺塔:简述:大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。

<script>	
// 2>汉诺塔(输入盘子数,打印出放置步骤)
		 var m;
		 m = parseInt(window.prompt('input m'));
		 if(m > 0 && m <= 20){
		 function hanoi(n,one,two,three){
			 function move(x,y){
				 document.write('<br>',x,"-->",y);
			 }
			 if(n == 1){
				 move(one,three);
			 }else{
				hanoi(n - 1,one,three,two);  // 把A座上的(n-1)个盘子借助C座移到B座;
				move(one,three);             // 把A座上的最底下的盘子移到C座上;
				hanoi(n - 1,two,one,three);  // 把B座上的盘子借助A座移到C座上;
			}
		}
		}else{
			alert("请输入1~20之间的数字!");
		}
		 hanoi(m,'A','B','C');
</script>
考虑到计算机的性能,限制到20个盘子。。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值