📅  最后修改于: 2023-12-03 15:12:22.389000             🧑  作者: Mango
递归是一种算法,它允许函数调用自身,以解决问题。在该程序中,我们将使用递归来查找数字在数组中的所有索引。
该算法的实现过程如下:
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]。
递归程序是一种有用的算法,其中一个函数调用自身以解决问题。在此示例中,我们演示了如何使用递归查找数字在数组中的所有索引。这是一种简单而优雅的方法,可以用于查找任意值在任意数组中的位置。