【发布时间】:2019-05-11 15:03:11
【问题描述】:
我必须为带有两个参数的程序编写一个伪代码;一个数组和一个整数。程序应该打印数组中大于整数 x 的最小元素。我已经编写了这个程序,它运行良好。我现在必须使用递归重写代码。
我已经编写了使用递归的伪代码,当我进行递归调用时,我将参数传递给数组 [currentIndex -1],我这样做是为了让程序进行递归调用,最后索引可以降为零并且递归可以退出。
我想知道递归是否以这种方式工作,或者在这种情况下是否有不同的方法来实现递归。
如果我使用 seachElement(A[currentIndex -1],x) 递归调用函数,递归调用会成功吗?我担心的是,将索引号放入数组中会使它指向单个元素而不是整个数组;以及这样做是否正确。
searchElement(int A[], int x) {
n = A.length;
sum = -1;
if (A[0] == x) { sum++; return sum;}
else if (A[0] != x) {return sum;}
currentIndex = n - 1;
if(A[currentIndex] == x) {sum++;}
seachElement(A[currentIndex -1],x);
}
【问题讨论】: