递归求解两个数最大公约数

以前没太搞懂递归实现原理,看到书上有一道题是说用递归的方法求解两个数最大公约数

于是打算动手尝试一下,却百思不得其解,怎么写都不像递归

后上网查找,找到了如下代码

int gongyue(int a,int b)
{
if(a>b)
return gongyue(a-b,b);
if(b>a)
return gongyue(a,b-a);
if(a==b)
return a;

}

不得不暗自佩服它的精简高效

仔细想想才明白,写递归算法之前,首先要找到能实现递归的路数,譬如辗转相减.....

猜你喜欢

转载自blog.csdn.net/weixin_41851621/article/details/80909270