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 发布