尾部递归和迭代的区别
请教一个各位高手,递归和迭代怎么区分?(特别是尾部递归和迭代)最好有点小例子作解释~~
迭代中不一定有递归,但递归中一定有迭代,可说递归是迭代的一部分。
递归是简单的重复调用自己,而迭代则必须有新值出现,而且这个新值是由旧值得来的。
这是递归:
程序代码:
int recursion(int a) { if(a>1) {return a=recursion(a-1);} else {return a;} }上面代码中的a-1,就是迭代,因为由上次的值,生成了新值。
这是没有递归的迭代,由iterative生成新值:
程序代码:
//迭代 int recursion(int a) { if(a>1) {a=iterative(a-1);} else {return a;} } int iterative(int a) { int temp=a; temp=temp*2; return temp; }
大略就这个意思了,尾部迭代……嘿嘿……不会……