Написание последовательности, которая добавляет суммирование Num: Ruby

#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: я всегда их путаю.