递归经典例题

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);

}}

相关推荐
To_OC16 分钟前
LC 17 电话号码的字母组合:我的回溯算法,就是从这道题开窍的
javascript·算法·leetcode
黒亱中旳39 分钟前
Java AI 框架三国杀:Solon AI vs Spring AI vs LangChain4j 深度对比
java·人工智能·spring
网络工程小王39 分钟前
[智能对话系统架构设计文档]
java·系统架构·langraph
alxraves1 小时前
医用超声远程会诊系统:会诊平台的核心架构与功能解析
java·人工智能·架构
带刺的坐椅1 小时前
用 Solon AI ReActAgent 落地智能客服工单处理
java·ai·llm·agent·solon·react-agent
我是坏垠2 小时前
Crypto、Cipher与Password:Java加密开发的三个核心概念
java·开发语言·python
white_ant2 小时前
JDK LTS 版本升级迁移注意事项大全
java·开发语言
战族狼魂3 小时前
GPT-5.6与Grok 4.5重磅发布
人工智能·算法·大模型·大语言模型
白日焰火13 小时前
基于 OpenSpec 实现规范驱动开发
算法·交互
imuliuliang3 小时前
关于图搜索算法的性能建模与可预测性研究7
算法