递归求平均数|理解|讲解| c语言
生活随笔
收集整理的這篇文章主要介紹了
递归求平均数|理解|讲解| c语言
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <stdio.h>
#include <math.h>
double getMean(double a[], int n)
{if (n == 1) //遞歸結束{return a[n-1];//或者:return a[0];}else //遞歸體{return (a[n - 1] + getMean(a, n - 1) * (n - 1)) / n;}
}
int main(int argc, char const *argv[])
{double a[] = {1, 2, 4, 4, 5};printf("平均:%f", getMean(a, 5));return 0;
}
第n次要做什么?把第n次的值和前n-1次的整合結果整合 a[n-1]?第n次的值 getMean(a,n-1);?前n-1次的整合結果
難點在return (a[n - 1] + getMean(a, n - 1) * (n - 1)) / n;,其實用數學推一下就可以理解。
- 解釋:
返回 第(n個數 + 第1次到第n-1次的和 * n-1次 )/n - 技巧:第n次就是,把n和n-1整合到一起,如果是求和,則直接相加。但是要就平均,所以要理解第n次要做什么,以及a[n-1]和getMean(a, n - 1)的含義。
總結
以上是生活随笔為你收集整理的递归求平均数|理解|讲解| c语言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ug中文字大小设置_ug10.0工具条字
- 下一篇: OceanBase使用 OBD 自动化部