一个简单的例子.
public static int getSum(int max,int n,int i){
max+=i;
if(n==0)
return max;
else return getSum(max,n-1,i+1);
}
这是我以一个最笨的方式实现的for循环转递归算法.它的效率肯定是很低的.但是却很容易理解递归的原理.
因为我们都很懂for循环,有任何题目,绝对最先想出的是for循环而不是递归.除非很熟练,不然否则很多用for循环很简单
求解的题,用递归却想半天想不出结果.
我说一下自己总结的for循环转递归的方法
首先用递归明确这几点,1:是结束条件.2:是推进条件.其次,在我们用常规for循环或是while求解时,有哪些是变量是参与运算的.
递归很麻烦.它内部参与运算的值,如果定义在递归内,开始计算,就没有意义了.
我在起初完全没有头绪时,就用这种方式清晰思路 |