整数を分解するにはどうしたらよいのか?
rubyの問題を解いていて躓きましたので、備忘録として残します。
整数の分解の仕方
・100の位の取得方法
(num / 100) % 10
・10の位の取得方法
(num / 10) % 10
・1の位の取得方法
(num / 1) % 10
取り出したい数字の桁数で割り
その結果をさらに10で割った、そのあまりが任意の桁の数字となります。
※注意点
Rubyの性質上、整数同士(integer型)の計算だと返り値は整数になるので、小数点以下は切り捨てられます。
問題を解いてみよう
2桁の整数を入力させ、その10の位と1の位を取得しよう
def slice_num(num)
x = (num / 10) % 10
y = (num / 1) % 10
return x, y
end
puts "二桁の整数を入力してください"
input = gets.to_i
x, y = slice_num(input)
puts "10の位は#{x}、1の位は#{y}である"
無事に分解することができました。
なお、returnでカンマで区切ることにより、複数の変数を同時に定義することができるとのこと。