这条算法基于一个定理:两个正整数a和b(a>b) 他们的最大公约数等于a除以b的余数c和b之间的最大公约数 比如 10和25,25除以10商2余5,那么10和25的最大公约数,等同于10和5的最大公约数
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 求出a、b的最大公约数。
* @param a int
* @param b int
* @return int
*/
/**
*
*这条算法基于一个定理:两个正整数a和b(a>b)
* ,它们的最大公约数等于a除以b的余数c和b之间的最大公约数。
* 比如10和25,25除以10商2余5,那么10和25的最大公约数,等同于10和5的最大公约数。
*/
public int gcd (int a, int b) {
// write code here
int big = a>b?a:b;
int small = a<b?a:b;
if(big%small == 0){
return small;
}
return gcd(big%small,small);
}
}