java算法学习

最大公约数

  欧几里得算法

    描述:计算两个非负整数p和q的最大公约数:

  • 若q是0,则最大公约数为p。
  • 否则,将p除以q得到余数r,p和q的最大公约数即为q和r的最大公约数。

  根据算法的自然描述,我们可以很轻松地得到以下的递归实现:

1 public static int euclid(int p, int q) {
2 
3     if (q == 0)
4         return p;
5     
6     int r = p % q;
7     return euclid(q, r);
8 }

  

posted @ 2015-07-13 10:30  夜已殇  阅读(349)  评论(0编辑  收藏  举报