0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

初心者 三つの整数 特定の差がある場合の現し方

Posted at

本日な問題はこちらでした。

メソッドに3つの整数a b cを与えます。
・「aとbの差が1」または「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

absメソッドを使いましょう。

回答がこちらです。

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

まず、初めの記述で、abcそれぞれの差分を算出し、絶対値に変換します。

x == 1 && z >= 2で、「aとbの差が1」であり、かつ「bとcとの数値の差が2以上」を検討しています。
y == 1 && z >= 2で、「aとcの差が1」であり、かつ「bとcとの数値の差が2以上」を検討しています。

条件式は、以下のようにまとめて記述することもできます。

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

初心者の私にはまだ難しい問題でした。
このような条件式が直ぐに思いつく日はやって来るのでしょうか?
いい勉強法、集中力が続く方法があればいいです。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?