浅谈JavaScript递归

递归:是指函数/过程/子程序在运行过程序中直接或间接调用自身而产生的重入现象。递归指的是一个过程:函数不断引用自身,直到引用的对象已知。

//公园里面有200个桃子,每天吃掉一半,扔掉一个烂的,第6天剩余多少桃子

var x=200;
for(var i=0;i<6;i++){
	x=parseInt((x/2))-1}  //每天在吃掉一半,扔掉一个的过程中会可能出现奇数,所以要把奇数除以二的小数转化成整数
  
alert(x)

//公园里有一堆桃子,猴子每天能吃掉一半,扔掉一个烂的,发现第6天的时候剩余1个桃子,问刚开始有多少桃子

/*var s1=1;
for(var i=0;i<6;i++){
	s1=(s1+1)*2}    //当天的数量等于下一天的剩余数量加上1然后再乘以二
	alert(s1)*/

  

//用递归做
//当天的剩余量=(下一天的剩余量+1)*2
//函数明确:给一个天数返回该天剩余的数量。 /*function shuliang(ts){ if (ts==6){ return 1;} return (shuliang(ts+1)+1)*2} alert(shuliang(1)) */ //第一次执行 /* function shuLiang(1){ return (shuLiang(2)+1)*2}*/ //94 //第二次执行 /*function shuLiang(2){ return (shuLiang(3)+1)*2} *///46 //第三次执行 /*function shuLiang(3){ return (shuLiang(4)+1)*2}*/ //22 //第四次执行 /*function shuLiang(4){ return (shuLiang(5)+1)*2} */ //10 //第四次执行 /*function shuLiang(5){ return (shuLiang(6)+1)*2}*/ //4 //第四次执行 /*function shuLiang(6){ return 1} */ //递归函数逐层往里进,逐层往外出 递归是一层层请求下去,而数据是一层层返回上来

用递归求1,2,3,4,5....n的和

function sum(num){
	if(num==1){
	return 1}
	return num+sum(num-1);
	}
	
	alert(sum(4))*/

  

posted on 2017-06-18 18:36  superficial。  阅读(373)  评论(0编辑  收藏  举报

导航