java面试题——基础算法入门03《最大公约数(欧几里得)》

import org.junit.Test;

/**
 * @author DoubleHandSome
* @Date 2018年8月14日
*@version 1.0
 *
 */
public class Gcd {
    @Test
    public void gcdTest() {
        //求最大公约数和最小公倍数
        int a[]= {36,120};
        
        System.out.println("最大公约数"+gcd(a[0],a[1]));
        System.out.println("最小公倍数"+a[0]*a[1]/gcd(a[0],a[1]));
        
    }
    public int gcd(int a,int b) {
        //这里关于递归不理解的话,需要你先理解一下碾转相除法
        //1.递归式 gcd(a,b)=gcd(b,a%b)
        //2.递归边界 gcd(a,0)=a
        if(b==0)return a;
        else return gcd(b,a%b);
    }
}

 

你可能感兴趣的:(java面试题——基础算法入门03《最大公约数(欧几里得)》)