拉勾教育 Java就业急训营 学习笔记 递归

学习资源:拉勾教育

阶乘的计算

  • 编程实现参数n的阶乘并返回,所谓阶乘就是从1累乘到n的结果
  • 递推的方式进行计算
/*
	编程实现累乘积的计算并打印
*/
public class JieChengTest {
	
	// 自定义成员方法实现将参数n的阶乘计算出来并返回
	int show(int n) {
		
		int num = 1;
		for(int i = 1 ; i <= n ; i++) {
			num *= i;
		}
		return num;
	}
	
	public static void main(String[] args) {
		
		// 1.声明JieChengTest类型的引用指向该类型的对象
		JieChengTest jct = new JieChengTest();
		// 2.调用方法进行计算并打印
		int res = jct.show(5);
		System.out.println("最终的计算结果是:" + res);
	}
}

在这里插入图片描述

  • 递归的方式进行计算
/*
	编程实现累乘积的计算并打印
*/
public class JieChengTest {
	
	// 自定义成员方法实现将参数n的阶乘计算出来并返回
	int show(int n) {
		
		if(n == 1) {
			return 1;
		}
		return n * show(n-1);
	}
	
	public static void main(String[] args) {
		
		// 1.声明JieChengTest类型的引用指向该类型的对象
		JieChengTest jct = new JieChengTest();
		// 2.调用方法进行计算并打印
		int res = jct.show(5);
		System.out.println("最终的计算结果是:" + res);
	}
}

在这里插入图片描述

使用递归的注意事项

  • 使用递归必须有递归的规律以及退出条件
  • 使用递归必须使得问题简单化不是复杂化
  • 若递归影响到程序的执行性能,则使用递推取代之

费式数列的计算

  • 编程实现费式数列中第n项的数值并返回,费式数列:1 1 2 3 5 8 13 21 ……
  • 递归实现
/*
	编程实现费式数列的计算并打印
*/
public class FeeTest {
	
	// 自定义成员方法实现费式数列中第n项数值的计算并返回
	int show(int n) {
		if( n == 1 || n == 2) {
			return 1;
		}
		return show(n-1) + show(n-2);
	}
	
	public static void main(String[] args) {
		
		// 1.声明FeeTest类型的引用指向该类型的对象
		FeeTest ft = new FeeTest();
		// 2.调用方法计算并打印
		int res = ft.show(5);
		System.out.println("计算的结果为:" + res);
	}
}

在这里插入图片描述

  • 递推实现
/*
	编程实现费式数列的计算并打印
*/
public class FeeTest {
	
	// 自定义成员方法实现费式数列中第n项数值的计算并返回
	int show(int n) {
		int ia = 1;
		int ib = 1;
		for(int i = 3 ; i <= n ; i++) {
			int ic  = ia + ib;
			ia = ib;
			ib = ic;
		}
		return ib;
	}
	
	public static void main(String[] args) {
		
		// 1.声明FeeTest类型的引用指向该类型的对象
		FeeTest ft = new FeeTest();
		// 2.调用方法计算并打印
		int res = ft.show(55);
		System.out.println("计算的结果为:" + res);
	}
}

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值