gcd(欧几里得算法)

算法起步,遇到的简单的问题有的都是求一些最大公约数或者最小公倍数。

欧几里得算法就是辗转相除。

求a与b的最大公约数。

a%b=c(取余数,a>=b)

若c=0 gcd(a,b)=b;

若c≠0 gcd(a,b)=gcd(b,c);

直到等于零为止。

int gcd(int a,int b){

  if(a<b) return gcd(b,a);

  return b?b:gcd(b,a%b);

}

上一篇:B1048 数字加密


下一篇:NOI / 2.2基本算法之递归和自调用函数——7592:求最大公约数问题