Python 中的基本递归程序2025年3月17日 | 阅读 7 分钟 递归是编程中解决问题的一个重要概念。每个初学者都会遇到递归,即使是有经验的开发者也会使用递归。如果你不熟悉递归,它是一个函数调用自身的机制。例如 - 放置两个相对的镜子,当有物体出现在它们之间时,它会被递归地反射。要了解更多关于递归的信息,请访问 www.javatpoint.com/recursion-in-python。 在本教程中,我们将使用递归解决一些重要的 Python 问题。这将有助于加深对递归的理解以及如何着手解决问题。 让我们来看一下这些问题。 求一个数的阶乘这是递归的一个入门级或著名问题。一个数的阶乘是通过将该数乘以 n-1 直到得到 1 来计算的。假设我们想计算 5 的阶乘,它将如下所示。 正如我们所看到的,它反复计算 n*(n-1)。因此,我们可以使用递归。这里 0 的阶乘是 1。递归的基线情况如下 - 代码如下。 示例 - 输出 Enter a number: 6 The factorial of a 6 is: 720 斐波那契数列这是一个非常著名的数学问题,有时也会在初级职位的面试中出现。在这个数列中,数列中的每个数字都是它前面两个数字的和。该数列为 0, 1, 1, 2, 3, 5, 8, ... 等等。第一个元素是 0,第二个是 1;因此,第三个元素是第一个和第二个元素的和。假设我们想要斐波那契数列的第 6 个元素,那么它前面两个元素将是 5 和 4 - 数列 Fn 由以下递推关系定义。 以及初始值 - 让我们用 Python 代码来实现这个递推关系。 示例 - 输出 Enter a number: 7 The 7 element of fibonacci series is: 13 求前 n 个自然数的和这是一个简单的问题,我们使用递归来求 n 个自然数的和。 示例 - 输出 Enter a number: 6 21 求一个数的幂求一个数的幂,需要一个底数和一个指数。将一个数乘以自身,次数等于指数的值。指数写在底数的上方和右侧。每次将底数相乘时,指数都会减一。 示例 - 输出 4 to the power of 7 is: 2187 2 to the power of 8 is: 64 求两个数的最小公倍数 (LCM)在数学中,LCM 是两个或多个数字的最小公因子。例如 - 我们想找出 2 和 5 的公因子,那么 - 2 的倍数 → 2, 4, 6, 8, 10 5 的倍数 → 5, 10, 15, 20, 25 最小公倍数是 → 10 让我们看下面的例子 - 示例 - 输出 The least common factor is: 16.0 求两个数的最大公约数 (GCD)它也称为最大公因子 (HCF),它是能同时整除两个给定数字的最高公因子。例如 - 假设我们要找出 a = 98 和 b = 56 的 HCF。 这里 a>b,所以我们将 a 的值减去 b,而 b 保持不变 a = a - b = 98 - 56 = 42,b = 56。现在 b>a,所以 b = b - a = 56 - 42 = 14,a = 42。42 是 14 的 3 倍,所以 HCF 是 14。 让我们用 Python 代码来实现它。 示例 - 输出 GCD of 24 and 48 is 24 汉诺塔这是一个著名的数学谜题,有三根杆子和三个圆盘。主要任务是将整个堆栈移动到另一个杆子上,并且必须遵守以下规则 -
让我们用下面的例子来解决这个代码。 示例 - 输出 Enter number of disks: 2 Move disk 1 from rod A to rod B. Move disk 2 from rod A to rod C. Move disk 1 from rod B to rod C. 求一个数的各位数字之和我们也可以使用递归来解决这类问题。假设用户输入 143,则数字之和为 1+4+3 = 8。让我们来理解下面的例子。 示例 - 输出 Enter a number: 143 The sum is: 8 合并排序归并排序算法基于分治法,是最有效的算法之一。在归并排序算法中,给定的数组被分解成多个数组,直到每个数组只包含一个元素。然后进行排序,并合并成一个单一的数组。访问我们的 Python 归并排序算法以获得详细的解释。 示例 - 输出 Input Array: [24, 11, 50, 27, 16, 36, 60, 91] Sorted Array : [11, 16, 24, 27, 36, 50, 60, 91] 帕斯卡三角形帕斯卡三角形是一种特殊的三角形,其中每个数字是上面两个数字的和,除了边缘上的数字,它们都是 '1'。 让我们来理解以下代码。 示例 - 输出 Enter a number: 6 [1, 5, 10, 10, 5, 1] 结论递归可以减少代码行数,但会占用更多内存。在本教程中,我们讨论了一些可以使用递归解决的简单问题。这些常见问题可能会在编程面试中出现。 |
在本教程中,我们将学习 Python 中的 property 装饰器。之前,我们讨论了 Python 中的装饰器;如果您熟悉装饰器,您应该在继续之前阅读该教程。让我们来介绍一下 property 装饰器。Python @property 装饰器 让我们通过一个例子来理解它...
阅读 8 分钟
Python 中的可变和不可变数据类型 可变或不可变是用来解释数据类型在初始化后是否能够被更新的属性的专业术语。基本解释如下:可变对象是指其内部状态可以改变的对象。在...
7 分钟阅读
我们中的许多人渴望开发应用程序;然而,大多数人却止步于 Java 编程语言。这是一个事实,或者说是一个活生生的现实,我们不可能知道世界上的一切。不知道是否存在...
阅读 4 分钟
Faker Python简介Faker是一个开源库,也称为Faker,可帮助用户构建其数据集。我们可以使用Name、Age、Location等随机属性生成随机数据。Faker库支持所有中心位置和语言,对...有利
阅读9分钟
Graphviz 是什么?Graphviz 是一款开源图表可视化编程软件。图表可视化是一种将底层数据表示为概念图和组织的轮廓的方法。它在系统管理、生物信息学、编程、数据库和网站设计、机器学习以及其他技术的可视化接口方面具有重要应用……
阅读 6 分钟
Python 的内置 ConfigParser 库是基础模块的一部分。该库提供了一个控制台解析器,用于轻松配置由键值对组成的文件。该库支持的全球公认的流行约定是“INI”语法,最常用于 Microsoft 平台。...
7 分钟阅读
类方法、静态方法和实例方法之间的区别 在本教程中,我们将学习类方法、静态方法和实例方法。这些方法是 Python 中面向对象编程的核心概念。每个 Python 爱好者都应该熟悉这些方法以及如何...
5 分钟阅读
在本教程中,我们将编写一个 Python 程序,打印出列表元素所有可能的组合。我们将以三个不同的整数作为输入,并打印出这些数字所有可能的组合。这是一个相当简单的程序;它可能会被问到...
阅读 3 分钟
Python 是一种通用的编程语言。通过观察其易于学习以及其在机器学习数据分析等方面的应用能力,很容易理解 Python 在过去几年的发展...
阅读 19 分钟
介绍 IDLE 代表集成开发和学习环境。轻量级且用户友好的 Python IDLE(集成开发和学习环境)是用于 Python 编程的工具。自版本 1.5.2b1 以来,标准 Python 实现已包含 IDLE,一个集成开发环境。许多 Linux 发行版将其包含在 Python...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India