LoginSignup
0
0

More than 1 year has passed since last update.

本日の基礎練習問題(22/3/15)

Posted at

問題
正の整数を入力します。その整数が、
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の位に着目できたのはよかった。しかし時間がかかりすぎたので明日は早く問題を解けるように意識したい。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0