📌  相关文章
📜  递归程序以查找数字的所有索引(1)

📅  最后修改于: 2023-12-03 15:12:22.389000             🧑  作者: Mango

递归程序以查找数字的所有索引

递归是一种算法,它允许函数调用自身,以解决问题。在该程序中,我们将使用递归来查找数字在数组中的所有索引。

算法

该算法的实现过程如下:

  1. 接收一个数字和一个数组作为输入。
  2. 设置初始索引为0。
  3. 如果当前索引等于数组长度,返回一个空数组。
  4. 如果当前索引对应的元素等于要查找的数字,则将其索引添加到结果数组中。
  5. 递归调用该函数,并在当前索引加1的基础上查找下一个数字的索引。
  6. 返回结果数组。
代码实现
def find_index(number, array, index=0, result=[]):
    if index == len(array):
        return result
    if array[index] == number:
        result.append(index)
    return find_index(number, array, index+1, result)
代码解释

该函数包含四个参数:

  • number:要查找的数字。
  • array:包含要查找数字的数组。
  • index:要查找数组的起始索引,默认为0。
  • result:用于存储找到的索引的数组,默认为空数组。

函数通过检查当前索引处的数组元素是否等于要查找的数字来确定要添加到结果数组中的索引。如果当前索引等于数组长度,函数返回结果数组。

函数使用递归调用方式,以查找下一个数字的索引。在每次调用中,当前索引加1以达到查找下一个数字的目的。

示例
arr = [2, 5, 1, 3, 5, 4, 5]
number = 5
result = find_index(number, arr)
print(result)

此示例将返回一个数组,其中包含3个数字5在原始数组中的索引,即[1, 4, 6]。

结论

递归程序是一种有用的算法,其中一个函数调用自身以解决问题。在此示例中,我们演示了如何使用递归查找数字在数组中的所有索引。这是一种简单而优雅的方法,可以用于查找任意值在任意数组中的位置。