我正在寻找最简单的解决方案来获得多个值的最大公约数。类似的东西:
x=gcd_array(30,40,35) % Should return 5
x=gcd_array(30,40) % Should return 10
你会如何解决这个问题?
非常感谢!
答案 0 :(得分:20)
gcd(a,b,c) = gcd(a,gcd(b,c))
这意味着您可以使用递归。
答案 1 :(得分:1)
`% GCD OF list of Nos using Eucledian Alogorithm
function GCD= GCD(n);
x=1;
p=n;
while(size(n,2))>=2
p= n(:,size(n,2)-1:size(n,2));
n=n(1,1:size(n,2)-2);
x=1;
while(x~=0)
x= max(p)-min(p);
p = [x,min(p)];
end
n=[n,max(p)];
p= [];
end
'