楼上的把概念分析的很透彻,也区分了和递推或迭代的区别.你用的是迭代.我顺便说一下!(引用一下楼上的)注意: (1) 递归就是在过程或函数里调用自身; (2) 在使用递增归策略时,必须有一个明确的递归结束条件,称为递归出口。举几个例子吧!1+2+3+...100要求这个方法很多.用递归理解:假设s100表示求1~100的和,s99表示1~99的和,s(n)就是1~n的和递归表示为:s100=s99+100; s99=s98+99依次类推,s(n)=s(n-1)+n;当然不能一直加,总有个界限,就是s0=0(s1=1也行);对于楼上用的函数int sum(int value)种,就是这么理解的:阶乘一样s7=s6*7 s6=s5*6s(n)=s(n-1)*n
s(1)=1(或者s0=1)程序如下:int fac(int value) { if(value==0)return 1; else return sum(value-1)*value; } main() { int result; result=fac(10); }
|