うるう年
開始と終わりの年を聞いて、その間にあるすべてのうるう年を(開始と終わりの年がうるう年ならそれも含めて)表示するプログラムを書いてみましょう
- うるう年は4で割り切れる数です
- 100で割り切れる数はうるう年ではなく(1800や1900のように)
- 100で割り切れる数はうるう年ではないが、その中で400で割り切れる数はうるう年(1600や2000)
実行
くらいんさんの回答を写経です。
- 1行目
- うるう年であるかを定義しましたね
- 2〜4行目
- うるう年の条件を提示
- 10〜16行目
- んんんん??! else〜endの繋がりがしっくりわからない
- 18, 19行目
- うるう年の最初/最後の年を聞いてます→おk
- 21〜24行目
- 18,19行目で聞いた年の中で(year.upto)上で定義したうるう年があればputsすることを指示
def leap? ( year ) if year % 4 == 0 if year % 100 == 0 if year % 400 == 0 return true else return false end return false else return true end else return false end end start_year = gets.to_i end_year = gets.to_i start_year.upto(end_year) do |year| puts year if leap?(year.to_i) end
1980〜2000年のうるう年を聞いてみた。ほう。
上では「うるう年を全部putsする」よう指示してるが「うるう年がいくつあるか」を聞くこともできそう。だがわからなくなったので今日はここまで。
moomin:ProgrammingRuby tomomi$ ruby leap.rb 1980 2000 1980 1984 1988 1992 1996 2000