数据结构实验(二)递归函数练习
1|06-1 递归法求Fibonacci数列第n项的值
这道题就是写一个简单的递归函数即可
2|06-2 分治法求解金块问题
这道题就是典型的分治
[l,r]
,区间的中点是mid
,那么a[l,r]
的最小值就是min( a[l,mid]的最小值 , a[mid+1,r]的最小值 )
一直递归就好,边界就是l+1==r
此时返回min( a[l] , a[r] )
就好,或者是l==r
返回a[l]
即可。
最大值同理
3|06-3 正整数的分解方式
这道题就是枚举一下,找到所有可以整除的,然后把decompose( n / i , i )
累加起来就好,边界条件就是n==1
。除此之外一定会走到一些不合法的情况,这种情况的边界就是n<k
此时能整除n
的数一定比上一个要小。
4|07-1 快速幂
这道题就是快速幂的模板了吧,属于很常用的算法了。
5|07-2 孔融分梨(函数实现)
这题实际上就是把分数通分一下就可以的
6|07-3 汉诺塔问题
十分经典的汉诺塔问题,而且不是扩展版本的。
假如把n
个盘子,从x
移动到y
(这里的x,y
是任意的两个柱子,)就一定先把前n-1
个盘子从x
移动到z
(这里的z
是除了x,y
的第三根柱子),然后把n
从x
移动到y
,最后把前n-1
个盘子从z
移动到y
。
然后就会发现这其实是一个递归下去的过程,一直递归到只剩下盘子1
从x
移动到y
这是直接移动就好了。
理清思路代码还是很简短的。
__EOF__

本文作者:PHarr
本文链接:https://www.cnblogs.com/PHarr/p/16667815.html
关于博主:前OIer,SMUer
版权声明:CC BY-NC 4.0
声援博主:如果这篇文章对您有帮助,不妨给我点个赞
本文链接:https://www.cnblogs.com/PHarr/p/16667815.html
关于博主:前OIer,SMUer
版权声明:CC BY-NC 4.0
声援博主:如果这篇文章对您有帮助,不妨给我点个赞
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律