//递归 //函数自己调用自己 function a(){ a(); } //有一堆桃,一群猴子每天吃一半,然后扔掉一个坏的,第6天发现只剩下1个桃,问:原来有多少个桃? //反过来推:原来的桃子数量= (下一天桃子数量+1)*2,比如第5天桃子数量=(第六天桃子数量1个+扔掉的1个)*2 //所以该函数功能为用已知天数(n天),求该天(第n天)桃子数量 function taoZi(n){ if(n==6){ //已知第6天为1个桃,所以先把该条件排除出去 return 1; } // 排除后,第n天桃子数量=(第n+1天的桃子数量+1)*2 // || // 求第n天数量用taoZi(n),同理求第n+1天可用taoZi(n+1) return (taoZi(n+1)+1)*2; } alert(taoZi(0)); /* //当n=0时===> //第一步:带入n=0 function taoZi(0){ if(n==6){ //n不等于6,执行下边命令 return 1; } return (taoZi(1)+1)*2; //里面有个taoZi(1)要计算, } //第二步:求taoZi(1) function taoZi(1){ if(n==6){ //n不等于6,执行下边命令 return 1; } return (taoZi(2)+1)*2; //里面有个taoZi(2)要计算 } //第三步:求taoZi(2) function taoZi(2){ if(n==6){ //n不等于6,执行下边命令 return 1; } return (taoZi(3)+1)*2; //里面有个taoZi(3)要计算 } //第四步:求taoZi(3) function taoZi(3){ if(n==6){ //n不等于6,执行下边命令 return 1; } return (taoZi(4)+1)*2; //里面有个taoZi(4)要计算 } //第五步:求taoZi(4) function taoZi(4){ if(n==6){ //n不等于6,执行下边命令 return 1; } return (taoZi(5)+1)*2; //里面有个taoZi(5)要计算 } //第二步:求taoZi(5) function taoZi(5){ if(n==6){ //n不等于6,执行下边命令 return 1; } return (taoZi(6)+1)*2; //里面有个taoZi(6)要计算 } //第六步:求taoZi(6) function taoZi(1){ if(n==6){ //n等于6,返回 1 return 1; } //最后把1这个值依次往回带入,即得到taoZi(0) */
<script type="text/javascript"> //递归//函数自己调用自己function a(){a();}//有一堆桃,一群猴子每天吃一半,然后扔掉一个坏的,第6天发现只剩下1个桃,问:原来有多少个桃?//反过来推:原来的桃子数量= (下一天桃子数量+1)*2,比如第5天桃子数量=(第六天桃子数量1个+扔掉的1个)*2//所以该函数功能为用已知天数(n天),求该天(第n天)桃子数量function taoZi(n){if(n==6){ //已知第6天为1个桃,所以先把该条件排除出去return 1; }// 排除后,第n天桃子数量=(第n+1天的桃子数量+1)*2// || // 求第n天数量用taoZi(n),同理求第n+1天可用taoZi(n+1) return (taoZi(n+1)+1)*2;}alert(taoZi(0));/*//当n=0时===>//第一步:带入n=0function taoZi(0){if(n==6){ //n不等于6,执行下边命令 return 1; } return (taoZi(1)+1)*2; //里面有个taoZi(1)要计算,}//第二步:求taoZi(1)function taoZi(1){if(n==6){ //n不等于6,执行下边命令 return 1; } return (taoZi(2)+1)*2; //里面有个taoZi(2)要计算}//第三步:求taoZi(2)function taoZi(2){if(n==6){ //n不等于6,执行下边命令 return 1; } return (taoZi(3)+1)*2; //里面有个taoZi(3)要计算}//第四步:求taoZi(3)function taoZi(3){if(n==6){ //n不等于6,执行下边命令 return 1; } return (taoZi(4)+1)*2; //里面有个taoZi(4)要计算}//第五步:求taoZi(4)function taoZi(4){if(n==6){ //n不等于6,执行下边命令 return 1; } return (taoZi(5)+1)*2; //里面有个taoZi(5)要计算}//第二步:求taoZi(5)function taoZi(5){if(n==6){ //n不等于6,执行下边命令 return 1; } return (taoZi(6)+1)*2; //里面有个taoZi(6)要计算}//第六步:求taoZi(6)function taoZi(1){if(n==6){ //n等于6,返回 1 return 1; } //最后把1这个值依次往回带入,即得到taoZi(0) */
</script>