日期:2014-05-17  浏览次数:20744 次

对递归理解的不透彻,它里面是怎么在运转,请求讲解!
 private static int Bind(int money)
        {
           // int TotalPing = 0;
            //13+6+3+2+1
            if (money == 1)
            {
                return 1;
            }
            else
            {
                return Bind(money / 2) + money;
            }
        }
递归

------解决方案--------------------
按照你写的累计:1+3+6=10,最后值 = 1, +返回值3 +返回值6,你可自己测试和跟踪,看是否如你所想。
------解决方案--------------------
调用自身,直到money==1时,最内层N的调用返回1(弹至上一层),累加,然后又弹至上一层的上一层,累加...直到弹出最上层(第一次调用Bind),累加,然后return,整个结束