递归:是指函数 / 过程 / 子程序在运行过程序中直接或间接调用自身而产生的重入现象。递归指的是一个过程:函数不断引用自身,直到引用的对象已知。
// 公园里面有 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)) * /
- /
来源: http://www.cnblogs.com/gaofangquan/p/7043905.html