hibikousinnkibouのブログ

駆け出しプログラマーによる足跡ブログ

返り値を絶対値(今回の場合は正の整数)に変換する際にabsメソッドを利用する問題

問題.1

メソッドに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メソッドを使いましょう。

abs

対象となる数値に対して「abs」メソッドを実行すると絶対値を取得することができます。すなわち正の数の場合はそのままですが負の数の場合は符号を取って正の数にした数値が取得できます。

 

私の回答はこちら

def close_far(a,b,c)
a_b_s = (a-b).abs
a_c_s = (a-c).abs
b_c_s = (b-c).abs
if a_b_s == 1 || a_c_s == 1
if b_c_s >= 2
puts "True"
else
puts "False"
end
else
puts "False"
end
end

if文をネストして、問題文通りに記述していった形。

模範回答は、

(a_b_s == 1 && b_c_s >= 2) || (a_c_s == 1 && b_c_s >= 2) を条件式としていた。