递归经典例题

1.求斐波那契数列

public class RecursionDemo {

// 递归求斐波那契数列第n项

public static int fibonacci(int n) {

// 边界条件:第1项和第2项均为1

if (n == 1 || n == 2) {

return 1;

}

// 递归公式:F(n) = F(n-1) + F(n-2)

return fibonacci(n - 1) + fibonacci(n - 2);

}

public static void main(String\[\] args) {

// 测试:输出前10项斐波那契数列

System.out.println("斐波那契数列前10项:");

for (int i = 1; i <= 10; i++) {

System.out.print(fibonacci(i) + " ");

}

// 输出结果:1 1 2 3 5 8 13 21 34 55

}

}

2.求两数之间最小公倍数

public static int gcd(int m,int n){

if(n==0)

return m ;

return gcd(n,m%n);

}

3.递归进行插入排序

从数组最后一个往前插入排序,对数组排序等价于对0-倒数第二个元素这部分排序,再把最后一个元素插进去

public static void insertSort(int arr\[\],int k){

if(k==0){

return;}

insertSort(int arr\[\],int k-1);

int x = arrk;

int index = k-1;

while((index>-1)&&(x<arrindex)){

index--;

}

while()

}

3.汉诺塔问题

1、找到一种划分方法

2、找到递推公式或者等价转换

都是父问题转化为求解子问题

根据参数变化的趋势,对边界进行控制,适时终止递归

1-N从A移动到C,B作为辅助

等价于:

1、1~N-1从A移动到B,C为辅助

2、把N从A移动到C

3、1~N-1从B移动到C,A为辅助

public class TowerOfHanoi {

public static void main(String\[\]args)

printHanoi Tower( 3,A,B,C)

//将N个盘子从source移动到target的路径的打印

N:初始的N个从小到达的盘子,N是最大编号

source :原始柱子

auxiliary :辅助的柱子

target :目标柱子

static void printHanoiTower(int N, String source, String auxiliary, String target){

if(N==1){

System.out.println("move"N+"from"+source+" to"+target);

return;

} else{

//把1~N-1个盘子移到辅助盘上

printHanoiTower( N-1,source, target,auxiliary);

//N可以顺利到达target

System.out.println("move+N+"from"+source +" to"+target);

//将N-1个盘子挪到target

printHanoiTower( N-1,auxiliary ,source,target);

}}

相关推荐
测试盐1 分钟前
spark作业日志定位过程
java·hadoop·spark
ly76895 分钟前
从 OpenAPI 到多语言 SDK 生成:Java 服务端契约漂移与生成器版本治理
java·开发语言·openapi·java 21·版本兼容·契约漂移·sdk 生成
lqbzlll18 分钟前
CVE-2026-91403 排查指南:Java JSSE 信任链漏洞的根因、影响范围和修复步骤
java·开发语言·信任链
CarIise21 分钟前
AOP 概念的引入
java·开发语言
Navigator_Z23 分钟前
LeetCode //C - 1311. Get Watched Videos by Your Friends
c语言·算法·leetcode
重生之我是Java开发战士30 分钟前
【Redis】Java & JavaSpring 客户端
java·redis·bootstrap
云析赢指标公式网438 分钟前
通达信ATAN均线角度公式源码笔记:四周期角度计算与DRAWBAND色带实现
笔记·算法
21岁被迫秃头1 小时前
SVT-AV1 Mini-Gop决策算法详解+源码分析.md
算法·av1·svt-av1·源码详解·mini-gop决策
Kobebryant-Manba1 小时前
IEKT向量矩阵流程&评估
人工智能·算法·矩阵
郭小李1 小时前
mybatis的 Mapper.xml语法
xml·java·mybatis