35
loading...
This website collects cookies to deliver better user experience
def recursive_sum(numbers)
if numbers.size <= 1
numbers[0]
else
numbers.slice!(0) + recursive_sum(numbers)
end
# Poderíamos fazer de forma ternaria:
# numbers.size <= 1 ? numbers[0] : numbers.slice!(0) + recursive_sum(numbers)
end
recursive_sum
. numbers = [1, 2]
recursive_sum(numbers)
# => 3
else
por ter mais de um item. slice!(0)
, que por sua vez remove o primeiro item do array, no caso o número 1 e chamo novamente a função soma_array, então algo como:1 + soma_array([2])
n! = n . (n – 1) . (n – 2) . (n – 3)!
def factorial(number)
if number == 1
1
else
number * factorial(number - 1)
end
# number == 1 ? 1 : number * factorial(number)
end
factorial(3)
# => 6
(3 * (3-1)) * (2-1)
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
Fn = Fn - 1 + Fn - 2
def fib(number)
return number if number < 2
fib(number-1) + fib(number-2)
# number <= 1 ? number : fib(number - 1) + fib(number - 2)
end
fib(6)
# => 8