本人是刚刚自学java过来的,偶然机会看到一个视频,说有的时候需要使用递归,
尤其是在java中的删除多级目录,于是我就开始琢磨,有没有什么套路呢,
现在有一个简单案例,就是把1+到100的等差数列求和,
首先是简单的for循环写法:
@Test
public void testAdd(){
String str="1";
System.out.println(str);
int result=0;
for(int i=2;i<=100;i++){
str+=("+"+i);
result+=i;
System.out.println(str+"="+(result+1));
}
}
这是改写的递归法,
每一步是输出结果
然而这简单的算法,我却琢磨了很久,感觉里面有一些东西非常接近,
递归写法**
public class DemoAdd {
static int result=1;
public static int add(int n) {
if (n < 100) {
result += (++n);
System.out.println(result);
return add(n);
} else {
return 0;
}
}
public static void main(String[] args) {
add(1);
}
}
现在问题来了,就是新手在学习递归方法的时候,有没有什么思维套路,
不可能每次需要使用的时候都要琢磨半天吧,
比如我需要先把for循环写出来吗,或者需要打什么草稿,然后怎么做,请高手指点一下,