課題 3桁の整数がある時、百の位、十の位、一の位の和を求める
回答
doriru.rb
def total_num(num)
total = (num/100 %10) + (num/10 %10) + (num %10)
puts total
end
total_num(123)
解説
ここから私なりの理解した内容を記述していきたいと思います。
まず百の位、十の位、一の位を取り出すやり方で共通しているのは%10
する時は取り出したい位で割っていることだと思いました。
どういうことかと言いますと、例えば百の位のとき分母を100にして割ると
123/100 = 1.23
1.23 %10 = 1
となり、小数点以下は切り捨てられるので残った数字に%10
すると百の位である1が取り出せました。
次に十の位のとき分母を10にして割ると
123/10 = 12.3
12.3 %10 = 2
となり、小数点以下は切り捨てられて残った数字で%10
すると十の位である2が取り出せました。
最後に一の位ですが、分母は1になるのでそのまま%10
します。
123 %10 = 3
最終的な余りが3なのでこちらが出力されます。
あとは出力した値を足していけば3桁の整数の百の位、十の位、一の位を足した結果が出力されます。