求最大公约数函数gcd()

辗转相除法:
辗转相除法相比更相减损法更常用,这里就介绍一下辗转相除法的实现方法
这个偏向模板化,只要记住就可以了,如果你想探究更深层的实现原理点击我进入
1.递归实现
你可以这样记,这里的参数列表内的a和b是向左移动的,a变成b,b变成a%b,b=0返回a

int gcd(int a,int b)
{
    if(b == 0)
        return a;
    return gcd(b,a%b);
}

2.非递归实现

int gcd(int a,int b)
{
    while(b){
        int t = b;
        b = a%b;
        a = t;
    }
    return a;
} 

你可能感兴趣的:(算法)