2014-10-29 27 views
-1

我有一些伪这里:不知道,如果我的功能被划分为递归

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变量?我知道我在调用本身内部的方法(这是递归),但我不知道是否允许正确的递归在函数外部增加变量。

+1

它是。它是尾递归的。 – HuStmpHrrr 2014-10-29 16:46:49

回答

0

是的。递归函数是一种自我调用(或可能)的函数。它没有做或没有做的事与这个定义有关。 “是”是从代码或潜力的意义上来解释的,而不是在任何给定的运行中实际发生的事情。

在另一方面,也有很多事情,这是不明智的递归函数来完成,并根据一个全局变量来控制其操作就是其中之一。

0

建议你把它用这种方式:

function search(A, n) 
    function aux(i) 
     if A[i] == n 
      return true 
     else 
      return aux(i+1) 

    return aux(0) 

它的尾递归。

相关问题