辗转相除法
Posted 糖小俊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了辗转相除法相关的知识,希望对你有一定的参考价值。
辗转相除法(欧几里得算法)是求最大公约数的算法,首先用较大的数除以较小的数,求得商与余数,把余数作为除数,即用原来的除数除以余数,求得商与余数。以此类推,直到余数为零时,除数即为原来两数的最大公约数。
一.递归算法
1 function gcd(a, b) 2 if a<b 3 swap(a,b); //交换a,b的值 4 if b==0 5 then return a; 6 else 7 return gcd(b, a mod b); //mod函数为求余函数相当于% 8 end
二.循环版本
1 function gcd(a,b) 2 if a<b 3 then swap(a,b); 4 while(b!=0) 5 { 6 c = a mod b; 7 a = b; 8 b = c; 9 } 10 return a; 11 end
以上是关于辗转相除法的主要内容,如果未能解决你的问题,请参考以下文章