C语言函数递归求四个数的最大值
2020-04-01 19:17
1111 查看
递归算法求四个数的最大值
问题描述:通过函数的递归求四个数的最大值
解题思路:通过多次比较两个数进行比较大小,本质就是冒泡法排序
即:
max_4=max_2(num1,max_2(num2,max_2(num3,num4)))
那么可以将4推广成n,
max_n 也可以用n-1次max_2进行运算,
并用递归表示n次max_2的过程,
由于要比较多个数字的大小,故将数字存储在数组当中。
比较四个数字
由于题目中规定的是四个数字,
就直接将数组长度定义为了4,
但是max_n的函数是可以适用任意n(>2)的。
#include<stdio.h> int max_n(int n,int num[]); int max_2(int a, int b); int main() { int max; int num[4]; printf("Please input 4 numbers:"); scanf("%d %d %d %d",&num[0],&num[1],&num[2],&num[3]); max=max_n(4,num); printf("%d",max); } int max_n(int n,int num[]) { int max; if(n>2) max=max_2(num[n-1],max_n(n-1, num)); if(n==2) max=max_2(num[n-2],num[n-1]); return max; } int max_2(int a, int b) { return (a>b?a:b); }
针对不同要求,只需在main函数中改变数组长度即可满足。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- Java数据结构和算法-递归应用(汉诺塔、欧几里得求最大公约数、泊松分酒)
- 最大公约数的递归解法
- 二叉查找树前驱、后继,非递归不使用栈不使用访问标记的中序遍历,最大最小节点
- hanoi塔的c语言函数递归实现
- 第四周项目 求四个数的最大公约数
- 编程之美之求二叉树中节点的最大距离(递归和非递归法)
- 第三周项目1:求四个数的最大公约数
- 78 C语言函数的递归调用
- 最大K乘积问题-(动态规划(JAVA),递归思想(C))
- 蓝桥杯训练:递归——求N个数的最大值
- 最大公约数(递归与非递归实现),最小公倍数
- 二分图最大匹配的非递归方法
- c语言函数递归求n的阶乘
- Python中递归的最大次数
- 用递归实现查找字符串中相同字符连续出现次数的最大值
- LintCode [递归]97.二叉树的最大深度
- 最大公约数和最小公倍数(递归)
- 第十一周 项目二(2)求四个数的最大公约数
- 5-1.用递归编写两个正整数的最大公约数
- 递归求两个串最大公共子序列长度