求一数组一段区间的最小公倍数递归的代码(二分法)

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)/2int 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;//返回合区间的最小公倍数
    }
}

你可能感兴趣的:(c语言,递归)