問題
正の整数を入力します。その整数が、
10の倍数(10,20,30...)からの差が2以内であるときはTrue
それ以外はFalse
と出力するメソッドを作りましょう。
出力例:
near_ten(12)→True
near_ten(17)→False
near_ten(19)→True
私の回答
def near_ten(num)
quotient = num % 10
if quotient <= 2 || quotient >= 8
puts "True"
else
puts "False"
end
end
解説
まずは引数に(num)を設定する
次に1の位を考える。10の倍数から差が2以内なので1の位が0,1,2,8,9が当てはまる。
quotientに1の位を代入する。
そしてif文で2以内または8以上と条件分岐を作成する。
当てはまる場合はTrue、当てはまらない場合はFalse
模範回答
def near_ten(num)
quotient = num % 10
if quotient <= 2 || quotient >= 8
puts "True"
else
puts "False"
end
end
模範解説
「10の倍数からの差」を考えるためには、一の位の値に着目します。すなわち、一の位が「0,1,2,8,9」のどれかであれば「10の倍数からの差が2以内」と判断することができます。
したがって、変数quotientに一の位の値を代入し、quotient <= 2 || quotient >= 8で「0,1,2,8,9」のどれかに当てはまるかどうかを確認しています。
感じたこと
1の位に着目できたのはよかった。しかし時間がかかりすぎたので明日は早く問題を解けるように意識したい。