开始之前,首先来看一个通常我们不会以递归的形式思考的问题。假设我们想计算整数n的阶乘。n的阶乘可写作n!,其结果是1~n之间的各数之积。比如,4!=4×3×2×1。一种计算法方法是循环遍历其中的每一个数,然后与它之前的数相乘作为结果再参与下一次计算。这种方法称为迭代法,可以正式定义为:
2025年10月02日
开始之前,首先来看一个通常我们不会以递归的形式思考的问题。假设我们想计算整数n的阶乘。n的阶乘可写作n!,其结果是1~n之间的各数之积。比如,4!=4×3×2×1。一种计算法方法是循环遍历其中的每一个数,然后与它之前的数相乘作为结果再参与下一次计算。这种方法称为迭代法,可以正式定义为:
2025年10月02日
今天在Python中学到一个有趣的概念。教学视频里的老师先举了一个故事,简单地说明了一下递归大概是什么意思。
故事是这样的:
从前有座山,山里有座庙,庙里有个老和尚,老和尚给小和尚讲故事,讲的什么故事呢?从前有座山,山里有座庙,庙里有个老和尚,老和尚给小和尚讲故事,讲的什么故事呢?从前有座山,山里有座庙,庙里有个老和尚,老和尚给小和尚讲故事,讲的什么故事呢?。。。
2025年10月02日
●什么是递归函数?
如果在一个函数的函数体内调用了该函数本身,这个函数就称为递归函数。
遵循:
●递归的组成部分
递归调用与递归终止条件。
●递归的调用过程
2025年10月02日
递归代码的优雅性一目了然,但其底层执行过程却像一个黑盒,令许多开发者感到困惑。它并非魔法,而是计算机系统最基础机制——函数调用栈(Call Stack)——的直接应用。本文将彻底打开这个黑盒,深入汇编与内存层面,解析递归如何通过栈帧(Stack Frame)的压入与弹出完成其精妙的舞蹈,并最终阐明其时空开销的本质。
2025年10月02日
函数有定义,有调用,定义函数是告诉系统函数有什么功能,调用就相当于要实现这个功能。
定义函数就相当于写剧本,告诉导演这个剧要演什么内容。
调用函数就是拍电影,把这个剧本的故事展现出来。
2025年10月02日
(大佬请绕行,比较基础!)递归是非常常见的一种算法,非常经典,可以解决非常多的问题。但我估计虽然大部分人知道递归,也能看得懂递归,但在实际运用中,很容易被递归给搞晕(数据,变量,函数等来回的出栈入栈)。今天写篇文章分享下,或许,能够给你带来一些帮助。