C++递归实现欧几里德(Euclid)算法

来源:互联网 发布:java常用的加密算法 编辑:程序博客网 时间:2024/05/01 11:46

/* the algorithm of Euclid */

#include <iostream>

int gcd(int,int);//the function of Greatest Common Divisor

/*****************************************************
 *example:
 * gcd(18,12) = gcd(12,18 mod 12) = gcd(12,6) =
 *   gcd(6,12 mod 6) = gcd(6,0) = 6
 *****************************************************/
int gcd (int a,int b)
{
 a = a%b;
 if(!a)
  return b;
 else
  return gcd(b,a); 
}

int main(int argc,char** argv)
{
 int a = 18,b = 12;
 
 std::cout<<gcd(a,b)<<std::endl;

 return 0;
}