ご無沙汰しておりました。
私自身は健康だったのですが、いろいろときついことが重なり、Webから離れてしまった次第です。
さて、気を取り直し、表題の通りやってみます。
既に同様のことを実施されているブログもいくつかありますが、やってみるのなら上記サイトでレジストする方が楽しいです。特に各設問を正解した後で閲覧可能なPDFファイルはなかなか面白くておすすめです。
正解やコードは公開せずに、設問を考えていくうちに気づいた事などをRuby初学者レベルの私が記録していくつもりです。ですから、かなり低レベルのことしか書けないでしょうから、読んでもあまり面白くないと思います。
Problem 1 (Project Euler) [和訳]
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.
FizzBuzz問題よりもやさしく、単に使用する言語でループ処理が出来るかどうかだけが試されているようです。
Rubyの組み込みオブジェクト(= Range)にメソッドを追加するのはあまりよくないのだろうなぁ…と思いつつも、下記のように書きました。
class Range
def solve_1
# ほにゃらら
end
end
answer = (1...1000).solve_1
puts answer
"(1...1000)"でドットが3つあるのは問題文に"below(未満) 1000"とあるからでした。
Rubyのブロック引数を指して「滑り台」と形容した「ホワイの(感動的)Rubyガイド」はちょっと冗長だけど本当に面白くてお勧めです。