求最大公约数的递归算法(小算法总结)

/* 
  最大公约数 (递归算法),辗转相除法。 
 */
  int gcd (int x, int y)
     {
	        if (y==0)
	           return x;
	        else 
	            return gcd (y,x%y); 
	 }
 /* 辗转相除法基于如下原理:
    两个整数的最大公约数等于其中较小的数和两数的相除的余数的最大公约数
	那y和x%y如果余数为0,那y不就是最大公约数
    补充:两个数的最小公倍数等于  x*y/gcb(x,y);
*/ 
最大公约数的循环写法: //原理也是一样的
int f(int a,int b)
{
	while (b)
	{
	  int t=a%b;
	  a=b;
	  b=t; 	
	}
   return a;
}
/*  两种算法读者可以自行选择  

 

    原文作者:递归算法
    原文地址: https://blog.csdn.net/wcgwww/article/details/82870969
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞