Ruby 条件演算子
問題
3桁の正の整数を入力します。その整数の「百の位・十の位・一の位の和」について、
10の倍数(0,10,20,30...)からの差が
・2以内であるときは"True"
・それ以外は"10の倍数との差は○です"
と表示される問題です。
出力例:
near_ten(123)→10の倍数との差は4です
near_ten(111)→10の倍数との差は3です
自分の回答
def near_ten (int) hun = int / 100 #100の値を求めます ten = int / 10 % 10 #10の値を求めます one = int % 10 #1の値を求めます sum = hun + ten + one #和を求めます if sum >= 8 || sum <= 2 #値が2以下又は8以上なら"true"を返します puts "true" elsif sum <= 5 puts "10の倍数との差は#{sum}です" else puts "10の倍数との差は#{10 - sum}です" end end
模範回答
def near_ten(num) total = (num/100 % 10) + (num/10 % 10) + (num % 10) remainder = total % 10 if remainder <= 2 || remainder >= 8 puts "True" elsif remainder <= 5 puts "10の倍数との差は#{remainder}です" else puts "10の倍数との差は#{10 - remainder}です" end end