0
0

More than 1 year has passed since last update.

ruby 練習問題41 (アウトプット用)

Last updated at Posted at 2022-12-23

3つの整数a、b、cが与えられた場合に以下条件を満たすメソッドを作成する問題。

・aとbの差が1かつbとcとの差が2以上の場合「True」と出力する
・aとcの差が1、かつbとcとの差が2以上の場合「True」と出力する
・それ以外は「False」と出力する

出力例:
close_far(1, 2, 10) → True
close_far(1, 2, 3) → False
close_far(4, 1, 3) → True

以下、模範解答。

def close_far(a,b,c)
  x = (a-b).abs
  y = (a-c).abs
  z = (b-c).abs

  if (x == 1 && z >= 2)
    puts "True"
  elsif ( y == 1 && z >= 2)
    puts "True"
  else
    puts "False"
  end
end

以下、解説。
close_farメソッドを作成してx,y,zに代入。

def close_far(a,b,c)
  x = (a-b).abs
  y = (a-c).abs
  z = (b-c).abs

xにaとbの差、yにaとcの差、zにbとcの差
ここでabsメソッドを使用。
absメソッドとは対象となる数値に対して絶対値を取得する事ができるメソッド。
正の数に対してはそのままだが負の数に対しては符号を取り除いてくれる。
例えば、-5 → 5のようになる。
そしてif文で条件分岐

if (x == 1 && z >= 2)
    puts "True"
  elsif ( y == 1 && z >= 2)
    puts "True"
  else
    puts "False"
  end
end

x ==(等しい)1 &&(かつ) z >=(以上) 2
でTrueを出力
y ==(等しい)1 &&(かつ) z >=(以上) 2
でTrueを出力
それ以外は
Falseを出力

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