递归与循环

记得参加某公司的笔试题,有一道题很简单要求用递归方法,当时不太明白什么是递归,刷刷用循环写了出来,结果错了...所以一定要搞清楚递归与循环的概念。

 


递归:递归是一个函数的内部调用这个函数自身(一定记住是调用自身的函数

循环:循环是通过设置计算的初始值及终止条件,在一个范围内重复运算(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、递归可能引起调用栈溢出问题

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值