怎么计算汉诺塔函数调用的次数,当盘子个数是10个时,为什么汉诺塔函数被调用1023次而不是二的九次方加三次
2的9次方+3次是怎么算出来的
为什么要+3
规律是2的n次方-1啊
你先从3个4个开始验证起,3个4个没想明白别想10个的事
-=-=-=
你想,只有1个盘子,那只需要移动1次,哪里用到+3了??
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门!
递归函数关注以下几个因素
·退出条件
·参数有哪些
·返回值是什么
·局部变量有哪些
·全局变量有哪些
·何时输出
·会不会导致堆栈溢出
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!