LoginSignup
1
0

More than 3 years have passed since last update.

10の倍数との差を求める

Posted at

今取り組んだものは
正の整数を入力して、それが10の倍数との差が2以下であるならばTrue、そうでないならFalseを出力するというものだった。

以下が自分の回答である。

def near_ten(num)
  basis = (num + 5) / 10 * 10
  difference = (num - basis).abs
  if difference <= 2
    puts "True"
  else
    puts "False"
  end
end

まずnumに一番近い10の倍数をbasisとする。

basisにふさわしい数字を計算しているのが2行目。

  basis = (num + 5) / 10 * 10

例として、15~24までの整数だと一番近い10の倍数は20であるから、20を基準にしたい。
この整数たちにそれぞれ5を加えると、20~29になる。
この整数たちは10の位が2なので、それぞれ/ 10 * 10を行うと20が出てきて、基準にしたい数字となる。

他の整数でも同じようにうまくいく。

これでbasisの部分は終了。

次に、元々の数字とこの基準との差を計算している。

num - basis

このままでは差がマイナスになることもあるので、絶対値を出すメソッドを使っている。

(num - basis).abs

あとはこれを代入

difference = (num - basis).abs

こうして求めた差であるdifferenceが2以下であれば良いからそれを判定して終了。

  if difference <= 2
    puts "True"
  else
    puts "False"
  end
1
0
0

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
1
0