- 题:求1+2+3+4+5+…+n的和
- 递归代码
public int sum(int n){
if(n==1){
return 1;
}else{
return n+sum(n-1);
}
}
- while
public int sum(int n){
int sum=0;
int i=1;
while(i<=n){
sum+=i;
i++;
}
return sum;
}
- 递归就是函数调用其本身,而循环是在满足条件的情况下一直执行一段代码
递归
优点:代码更简洁清晰,可读性更好。
缺点:由于递归需要系统堆栈,所以空间消耗要比非递归代码要大很多。而且,如果递归深度太大,可能系统撑不住。
循环
优点:速度快,结构简单
缺点:并不能解决所有的问题