#ruby
#ruby
Вопрос:
Как я могу написать выражение, которое добавляет числа в последовательность, чтобы найти суммирование num. Num — это положительное целое число, например:
summation(2) -> 3
1 2
summation(8) -> 36
1 2 3 4 5 6 7 8
Вот как выглядит мой код в настоящее время:
#8(num) 1%2 = 4.5
#4.5* 8 = 36
# num #=> 36
def summation(num)
num= num*num 1 % 2
end
и вот ссылка на ката для справки.
Ответ №1:
Мы можем использовать хорошо известную формулу замкнутой формы для треугольных чисел: n * (n 1) / 2
def summation(num)
num * (num 1) / 2
end
Однако эта формула уже реализована Enumerable#sum
for Range
s , так что это, вероятно, будет более читабельным:
def summation(num)
(1..num).sum
end
Комментарии:
1. Легенда! спасибо, что привели два примера того, как это можно написать
2. Является ли диапазон из трех точек опечаткой?
3. @steenslag: я всегда их путаю.