Используя инструкцию «без циклов» или «if
», буквально здесь рекурсивная версия, использующая ifelse
:
gcd <- function(x,y) {
r <- x%%y;
return(ifelse(r, gcd(y, r), y))
}
. Ее можно не ожидать, но это фактически векторизация :
gcd(c(1000, 10), c(15, 10))
[1] 5 10
Решение с использованием if
не будет обрабатывать векторы длиной больше 1.