Calculates the greatest common divisor of the given numbers.
Define a GCD()
function for two numbers, which uses recursion.
Base case is when y
equals 0
, which returns x
.
Otherwise the GCD of y
and the remainder of the division x/y
is returned.
Define an overload that accepts multiple numbers or an array and use IEnumerable.Aggregate()
to apply GCD()
to them.
代码实现
using System.Linq;
public static partial class _30s
{
public static int GCD(params int[] nums)
{
return nums.Aggregate(GCD);
}
public static int GCD(int x, int y)
{
return y == 0 ? x : GCD(y, x % y);
}
}
使用样例
_30s.GCD(8, 36, 28); // 4