1.迭代是人,递归是神!
从概念上讲,递归就是指程序调用自身的编程思想,即一个函数调用本身;迭代是利用已知的变量值,根据递推公式不断演进得到变量新值的编程思想。
2.递归
第一:每一级的函数调用都有自己的变量。
第三:递归函数中,位于递归调用前的语句和各级被调用函数具有相同的执行顺序。
第五:虽然每一级递归都有自己的变量,但是函数代码并不会得到复制。
2.3递归优缺点
递归递归,有递就得有归(出口),只递不归会导致程序崩溃。
一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。求总共有多少总跳法。I第一行输入T,表示有多少个测试数据。接下来T行,每行输入一个数n,表示台阶的阶数。
输出时每一行对应一个输出。
假如一共有三级台阶,一共有多少种走法?
假设有n级台阶,一共有多少种走法?
迭代与普通循环的区别是:迭代时,循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。
在循环的次数较大的时候,迭代的效率明显高于递归。
6.1现实中的迭代
这个过程也很像打游戏,你刚开始玩,一下子就输了,但是随着你玩的次数越来越多,你的技艺就越来越精湛,而这个结果,不是你在开始玩游戏的时候,规划出来的,而是在你玩的过程中,通过不断的输不断的输,练出来的。
所以,我们不能把迭代简单的理解为“升级”。
而迭代,是通过无数次,不断的,重复的,接近一个目标,折返接近,再折返再接近,最终达到目标。它不是一次性完成的,是通过不断重复的,但每次重复又比之前更好一点,这样一种非线性的进程。
1.重复:
2.改进
3.认知升级
迭代的过程就是不断提高认知的过程,升级只是这个过程的一个结果。
