Проект Эйлера 1: Найти сумму всех кратных 3 или 5 ниже 1000 - PullRequest
6 голосов
/ 03 января 2011

Я пытаюсь решить математические задачи с Руби из Project Euler. Здесь - первый, который я попробовал:

Если мы перечислим все натуральные числа ниже 10, кратные 3 или 5, мы получаем 3, 5, 6 и 9. Сумма этих кратно 23.

Найдите сумму всех кратных 3 или 5 ниже 1000.

Пожалуйста, помогите мне улучшить мой код.

total = 0

(0...1000).each do |i|
  total += i if (i%3 == 0 || i%5 == 0)
end

puts total

Ответы [ 11 ]

0 голосов
/ 03 января 2011

Еще один способ сделать это в точности так, как указано в задаче:

((1..(999/3)).map {|x| x*3} | (1..(999/5)).map {|x| x*5}).reduce(&:+)

Но ответ Marcog в постоянном времени гораздо лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...