递归求解数组中的最大值

水深无声 2022-07-28 10:50 353阅读 0赞

当i=0,Max(A,i)=A[0];//递归出口

否则,Max(A,i)=max(Max(A,i-1),A[i]);//max是取最大值

问题及代码:

  1. /*
  2. * Copyright (c) 2016, 烟台大学计算机与控制工程学院
  3. * All rights reserved.
  4. * 文件名称:Max.cpp
  5. * 作 者:单昕昕
  6. * 完成日期:2016年4月14日
  7. * 版 本 号:v1.0
  8. * 问题描述:已知A[n]为整数数组,编写一个递归算法求其中n个元素的平均值。
  9. * 程序输入:数组A[n]。
  10. * 程序输出:n个元素的平均值。
  11. */
  12. #include <iostream>
  13. using namespace std;
  14. const int MaxSize=100;
  15. int A[MaxSize];
  16. int Max(int A[],int i)
  17. {
  18. int a;
  19. if(i==0)//递归出口
  20. return A[0];
  21. else
  22. {
  23. a=Max(A,i-1);
  24. return ((a>A[i])?a:A[i]);//判断A[i]与a的大小
  25. }
  26. }
  27. int main()
  28. {
  29. int i,n,ans;
  30. cout<<"n=";
  31. cin>>n;
  32. for(i=0; i<n; ++i)
  33. cin>>A[i];
  34. ans=Max(A,n-1);
  35. cout<<"MAX="<<ans<<endl;
  36. return 0;
  37. }

运行结果:

Center

发表评论

表情:
评论列表 (有 0 条评论,353人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java数组

    递归的精髓在于不断的调用自身,从后往前处理数据计算得出结果。求数组最大值也是从后往前比较,回溯求最值。 往简单的看,和c++/c有很大的相似之处,只是代码表示上有区别。

    相关

    编写一个递归函数,查找数组中最小的数。 注意: 1. 该函数是递归函数,应该通过调用自身来达到要求。 2. 程序中不能使用循环来求最小值 (循环只允许出现一次,用于输入)