不知道,如果我的功能被划分为递归
问题描述:
我有一些伪这里:不知道,如果我的功能被划分为递归
index = 0
function search(A, n)
if A[index] == n
return true
else
index += 1
return search(A, n)
print search ([0, 1, 2, 3, 4 … 99], 5)
这是递归函数甚至与index
变量?我知道我在调用本身内部的方法(这是递归),但我不知道是否允许正确的递归在函数外部增加变量。
答
是的。递归函数是一种自我调用(或可能)的函数。它没有做或没有做的事与这个定义有关。 “是”是从代码或潜力的意义上来解释的,而不是在任何给定的运行中实际发生的事情。
在另一方面,也有很多事情,这是不明智的为递归函数来完成,并根据一个全局变量来控制其操作就是其中之一。
答
建议你把它用这种方式:
function search(A, n)
function aux(i)
if A[i] == n
return true
else
return aux(i+1)
return aux(0)
它的尾递归。
它是。它是尾递归的。 – HuStmpHrrr 2014-10-29 16:46:49