【问题标题】:Recursion and return of a index of array using recursion使用递归递归和返回数组的索引
【发布时间】:2020-08-01 04:15:10
【问题描述】:

如果我的数组是 9 8 10 8 并且我想搜索 10 并且在递归中 ans 将返回 1 然后它将使用 ans+1 进行广告并返回 2,那么有人可以解释变量 ans 如何返回数组的索引。

enter code here

int firstIndex(int input[], int size, int x) {

if(size==0)

{

返回 -1;

}

if(input[0]==x)

{ 返回 0;

}

int ans=firstIndex( input+1,  size-1,  x);

if(ans!=-1)

{
    return ans+1;
    
}

else

{
    return ans;
}

}

【问题讨论】:

    标签: recursion


    【解决方案1】:

    好的,所以函数在收到第一次调用时,向量如下所示: [9 8 10 8]。然后它将 9 与 10(搜索中的元素)进行比较。由于它们不相等,因此该函数进行递归调用,但使用新向量 [8 10 8]。在那一刻,我们的堆栈中有第一个调用。我们称之为 C1。

    然后它将 8 与 10(搜索中的元素)进行比较。由于它们不相等,因此该函数进行递归调用,但使用一个新向量 [10 8]。在那一刻,我们的堆栈中有第二个和第一个调用。我们称之为 C2 C1。

    然后它将 10 与 10(搜索中的元素)进行比较。因为它们相等,所以函数返回 0。所以在我们的堆栈中,C2 函数接收到 0 作为结果。由于它与 -1 不同,因此它向 C1 调用返回 1。因为 1 不等于 -1,所以它返回 2 留下正确的结果。

    【讨论】:

      猜你喜欢
      • 2014-01-07
      • 2013-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多