以前没太搞懂递归实现原理,看到书上有一道题是说用递归的方法求解两个数最大公约数
于是打算动手尝试一下,却百思不得其解,怎么写都不像递归
后上网查找,找到了如下代码
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;
}
不得不暗自佩服它的精简高效
仔细想想才明白,写递归算法之前,首先要找到能实现递归的路数,譬如辗转相减.....