int GCD(int a,int b);//返回两数的最大公约数
int LeastCommonMultiple(int a[],int low,int high)//递归求一组数的最小公倍数
{
if((high-low)==1)//区间元素为一个
return a[low];//返回该元素
else
{
int mid=(high+low)/2;
int gds_l=LeastCommonMultiple(a,low,mid);//得到左区间的最小公倍数
int gds_r=LeastCommonMultiple(a,mid,high);//得到右区间的最小公倍数
int gds=(gds_l*gds_r)/GCD(gds_l,gds_r);//求合区间的最小公倍数
//两数的最小公倍数=两数之积/两数的最大公约数
return gds;//返回合区间的最小公倍数
}
}
求一数组一段区间的最小公倍数递归的代码(二分法)
最新推荐文章于 2022-07-08 17:11:15 发布
本文介绍了一种使用递归方法求解一组整数最小公倍数的算法实现。通过将问题分解为左右两个子区间,分别计算各自区间的最小公倍数,再利用最大公约数计算整个区间最小公倍数。
168万+

被折叠的 条评论
为什么被折叠?



