给一个int数组,求输出所有数字的最大公约数。题目简单明白。要是真遇上这道题就好了
使用了欧几里得算法,好像没什么特别好说的,直接给出实现好了
public static int gcd(int m, int n)
{
if(m % n == 0)
return n;
else
return gcd(n, m % n);
}
private static int gcdArray(int[] array) {
// TODO Auto-generated method stub
if(array == null)
return 0;
if(array.length == 0)
return 0;
if(array.length < 2)
return array[0];
int x = array[0];
for(int i = 1; i < array.length; i++)
{
if(array[i] > 0 && x > 0)
x = gcd(x,array[i]);
else
return 0;
}
return x;
}