目录
1、用递归实现1+2+3+……+10【开胃菜】
【排序算法|初级递归题解析】
文章图片
2、用递归求斐波那契数列
例如:1,1,2,3,5……
注:代码举例的是第十项斐波那契数
3、小青蛙跳台阶(一次只可以跳1或2个台阶)求小青蛙跳上n个台阶总共有多少种跳法
注:代码举例的是四个台阶一共有多少种跳法
4、用递归法实现汉诺塔问题
1、用递归实现1+2+3+……+10【开胃菜】(下面越来越难哦)!!!
?
publicclassTestDemo{
publicstaticint sumAdd(int n){//求1+2+3+...+n
if (n == 1) {
return 1;
}
int sum=n;
sum=sum+sumAdd(n-1);
return sum;
}
public static void main(String[] args){
System.out.println(sumAdd(10));
}
}?
2、用递归求斐波那契数列
文章图片
【斐波那契:前两项之和等于第三项以此类推】
例如:1,1,2,3,5……
publicclassTestDemo{
public static int fib(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
return fib(n - 1) + fib(n - 2);
}
}
public static void main(String[] args) {
System.out.println(fib(10))
}
}
注:代码举例的是第十项斐波那契数 3、小青蛙跳台阶(一次只可以跳1或2个台阶)求小青蛙跳上n个台阶总共有多少种跳法
public class TestDemo{
public static int frogJump(int n){//青蛙跳台阶
if(n==1||n==2){
return n;
}else {
return frogJump(n-1)+frogJump(n-2);
}
}
public static void main(String[] args) {
System.out.println(frogJump(4));
}
}
注:代码举例的是四个台阶一共有多少种跳法
文章图片
4、用递归法实现汉诺塔问题
文章图片
publicclassTestDemo{
publicstaticvoid move(char p1,char p2){
System.out.print(p1+"->"+p2+";
");
}/**
*
* @param n//代表汉诺塔盘子的个数
* @param p1//代表盘子的起始位置
* @param p2//代表盘子的中转位置
* @param p3//代表盘子的最终位置
*/
public static void han(int n,char p1,char p2,char p3){
if (n == 1) {
move(p1,p3);
}else {
han(n-1,p1,p3,p2);
move(p1,p3);
han(n-1,p2,p1,p3);
}
}public static void main(String[] args) {
han(1,'A','B','C');
System.out.println();
han(2,'A','B','C');
System.out.println();
han(3,'A','B','C');
System.out.println();
}
}
文章图片
文章图片
推荐阅读
- java基础练习题以及答案|12.java基础----多态,内部类,常用API编程题
- JAVA初学者小题解析
- intellij-idea|IDEA的初级使用优化
- java|IDEA优秀插件之codeMaker
- java|Java实现表单的自定义字段功能(动态管理不同类型的字段数据)
- java|(微信定时发送消息)一个java文件,完成可配置的微信定时任务
- java|一、nacos注册中心(单机/集群)模式部署
- java|三、SpringCloud-Alibaba集成config配置中心与gateway网关
- java|JAVA使用EasyExcel数据库动态导出Excel,超简单!