求最大公约数gcd递归调用

img


在gcd中求a和b的最大公约数采用递归调用形式,看不懂函数中表达的意思,特别是gcd(b,a%b)的意思,求解释

这是求最大公约数的一种解法之一,需要用到递归
我以求5和3的最大公约数为例:
首先判断5能否被3整除,在代码中就是判断5÷3的余数是否等于0
这个条件不成立,所以要进入下一步骤:
递归一次,求3和5%3的最大公约数:
就是求3和2的最大公约数
然后发现3%2还是不等于0
所以继续递归:
求2和3%2的最大公约数:

就是这样一直循环,直到a%b==0
这样最终的答案(最大公约数)就是b