我们得到一个整数数组 Arr[] 作为输入。目标是使用递归方法在数组中找到最大和最小元素。
由于我们使用递归,我们将遍历整个数组,直到达到 length=1,然后返回 A[0],这构成了基本情况。否则将当前元素与当前的最小值或最大值进行比较,并通过递归为后面的元素更新其值。
输入 - Arr= {12,67,99,76,32};
输出 - 数组中的最大值:99
说明 - 在所有元素中,其中 99 是最大的。
输入 - Arr= {1,0,-99,9,3};
输出 - 数组中的最小值:-99
说明- 在所有元素中 -99 是其中的最小值。
以数组 Arr[] 作为输入。
函数 recforMin(int arr[], int len) 接受输入数组及其长度,并使用递归返回数组中的最小值。
取整数变量最小值
如果当前索引 len 为 1,则设置 minimum=arr[0] 并返回 minimum。
否则设置最小值 = arr[len] 或 recforMin(arr,len-1) 的最小值并返回它。
最后将返回最小元素。
打印在 main 中获得的结果。
寻找最大值
以数组 Arr[] 作为输入。
函数 recforMax(int arr[], int len) 接受输入数组及其长度,并使用递归返回数组中的最大值。
取整数变量最大值。
如果当前索引 len 为 1,则设置 maximum=arr[0] 并返回最大值。
否则设置 arr[len] 或 recforMax(arr,len-1) 的最小值 = 最大值并返回它。
最后将返回最大元素。
打印在 main 中获得的结果。
#include <iostream> using namespace std; int recforMin(int arr[], int len){ int minimum; if (len == 1){ minimum=arr[0]; return minimum; } else{ return minimum=arr[len]<recforMin(arr,len-1)?arr[len]:recforMin(arr,len-1); } } int main(){ int Arr[] = {-89,98,76,32,21,35,100}; int length = sizeof(Arr)/sizeof(Arr[0]); cout <<"数组中的最小值:"<<recforMin(Arr, length); return 0; }输出结果
如果我们运行上面的代码,它将生成以下输出
数组中的最小值:-89
#include <iostream> using namespace std; int recforMax(int arr[], int len){ int maximum; if (len == 1){ maximum=arr[0]; return maximum; } else{ return maximum=arr[len]>recforMax(arr,len-1)?arr[len]:recforMax(arr,len-1); } } int main(){ int Arr[] = {-89,98,76,32,21,35,100}; int length = sizeof(Arr)/sizeof(Arr[0]); cout <<"数组中的最大值:"<<recforMax(Arr, length); return 0; }输出结果
如果我们运行上面的代码,它将生成以下输出
数组中的最大值:-100