记得参加某公司的笔试题,有一道题很简单要求用递归方法,当时不太明白什么是递归,刷刷用循环写了出来,结果错了...所以一定要搞清楚递归与循环的概念。
递归:递归是一个函数的内部调用这个函数自身(一定记住是调用自身的函数)
循环:循环是通过设置计算的初始值及终止条件,在一个范围内重复运算(for,while等循环方式)
递归与循环作用:重复多次计算相同问题
以1+2+···+n举例,用递归和循环两种方法写出。
public class Diguiandxunhuan {
/**
* @param args
*/
//递归
public static int DiguiSum(int n){
return n<=0?0:n+DiguiSum(n-1);
}
//循环
public static int XunhuanSum(int n){
int result=0;
for(int i=1;i<=n;i++){
result+=i;
}
return result;
}
public static void main(String[] args) {
System.out.println(DiguiSum(3));
System.out.println(XunhuanSum(3));
}
}
递归与循环比较:
1、递归代码简洁,循环代码量大
2、递归循环效率不如循环
3、递归对性能负面影响大
4、递归可能引起调用栈溢出问题