Java基础面试题第九天
2021/7/26 22:08:03
本文主要是介绍Java基础面试题第九天,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
递归
什么叫递归:自己调用自己,直到满足一个条件结束自己调用自己的过程
关键:
1.递归出口
2.逐步向出口逼近
入门案例:求1+2+3+...+100的和
通过循环实现
package com.tohka.demos; //入门案例:求1+2+3+...+100的和 public class Demo1 { public static void main(String[] args) { System.out.println(getSum(100)); } //循环实现 public static int getSum(int number) { int sum = 0; for (int i = 1; i <= number; i++) { sum += i; } return sum; } }
通过递归实现
package com.tohka.demos; //入门案例:求1+2+3+...+100的和 public class Demo1 { public static void main(String[] args) { System.out.println(getSum(100)); } //递归实现 public static int getSum(int number) { int sum = 0; if(number == 1) { //递归出口 return 1; } else { return number + getSum(number -1); //向出口逼近 // 假设传递的参数为4 // getSum(4) = 4 +getSum(3) // = 4 + 3 +getSum(2) // = 4 + 3 + 2 +getSum(1) getSum(1)达到递归出口结果为1 // getSum(4) = 4 + 3 + 2 + 1 = 10 } } }
拓展拔高:斐波拉契数列之兔子案例
一对兔子从第三个月开始下一对小兔子,然后以后每个月都下一对,假设兔子长生不死
并且他们的崽子也是一样的去下小兔子,问N个月以后一共有多少对兔子?用递归实现
分析:
1 第一个月 | 1 第二个月 | 2 第三个月 | | 3 第四个月 | | | 5 第五个月 | | | | | 8 第六个月 | | | | | | | | 13 21 。 。 。 找到规律:斐波拉契数列:1 1 2 3 5 8 13 21......
代码实现
实现思路:
1.找到规律:从第三个月开始,后面一个月兔子数量等于前两个月之和
2.找到递归出口:第一个月、或者第二个月
3.逼近出口:当前月份前两个月兔子之和
package com.tohka.demos; //一对兔子从第三个月开始下一对小兔子,然后以后每个月都下一对, //假设兔子长生不死 并且他们的崽子也是一样的去下小兔子, //问N个月以后一共有多少对兔子?用递归实现 public class Demo2 { public static void main(String[] args) { System.out.println(getSum(5)); } public static int getSum(int month) { if(month == 1 || month ==2) { //递归出口 return 1; } else { //逼近递归出口 return getSum(month-1) +getSum(month -2); //假设求第五个月的兔子 //getSum(1) = 1; getSum(2) =1 都是递归出口 //getSum(5) = getSum(4) + getSum(3) // = getSum(3)+ getSum(2) + getSum(2) + getSum(1) // = getSum(2)+ getSum(1) +getSum(2) + getSum(2) + getSum(1) //getSum(5) = 1+1+1+1+1 = 5 } } }
BAT笔试真题
使用java递归解决汉诺塔问题
参考博客
https://blog.csdn.net/Hurricane_m/article/details/89043699
这篇关于Java基础面试题第九天的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-23线下车企门店如何实现线上线下融合?
- 2024-12-23鸿蒙Next ArkTS编程规范总结
- 2024-12-23物流团队冬至高效运转,哪款办公软件可助力风险评估?
- 2024-12-23优化库存,提升效率:医药企业如何借助看板软件实现仓库智能化
- 2024-12-23项目管理零负担!轻量化看板工具如何助力团队协作
- 2024-12-23电商活动复盘,为何是团队成长的核心环节?
- 2024-12-23鸿蒙Next ArkTS高性能编程实战
- 2024-12-23数据驱动:电商复盘从基础到进阶!
- 2024-12-23从数据到客户:跨境电商如何通过销售跟踪工具提升营销精准度?
- 2024-12-23汽车4S店运营效率提升的核心工具