求n个整数的平均值递归
时间: 2024-02-18 16:03:51 浏览: 75
第5章习题(递归与广义表).doc
好的,以下是一个求 n 个整数平均值的递归函数:
```c++
#include <iostream>
using namespace std;
double avgRecursion(int arr[], int n) {
if(n == 1) { // 只有一个数,直接返回该数
return arr[0];
} else {
// 递归计算 n-1 个数的平均值,再加上第 n 个数,最后除以 n 得到平均值
return (avgRecursion(arr, n-1) * (n-1) + arr[n-1]) / n;
}
}
int main() {
int arr[] = {2, 4, 6, 8, 10};
int n = sizeof(arr) / sizeof(arr[0]);
double avg = avgRecursion(arr, n);
cout << "平均值为:" << avg << endl;
return 0;
}
```
解释一下函数的递归过程:
假设有一个长度为 n 的数组 arr,它的平均值可以递归计算得到。当 n=1 时,数组中只有一个数,直接返回该数。当 n>1 时,可以将 arr 中的前 n-1 个数的平均值递归计算得到,再加上 arr[n-1],最后除以 n 得到整个数组的平均值。
这个递归过程可以用以下公式表示:
avg(arr, n) = (avg(arr, n-1) * (n-1) + arr[n-1]) / n
其中,avg(arr, n) 表示数组 arr 中前 n 个数的平均值。
阅读全文