むじんブログ ”3歩進んで2歩下がる”

37歳未経験からのエンジニア転職を目指す営業部長

学習のアウトプット【10の位だけを取り出す方法(Ruby)】

10の位の数字の取り出し方(Ruby)】

Rubyドリルにて出題。

 

途中でこちらのサイトを参照。

https://qiita.com/eve1224/items/cc0bcabea60e9ac7ab1d

 

10の位を取り出す場合

対象の数字を10で割って、出た数字をさらに10で割った余りを取得すればOK

例) (96 / 10) % 10 = 9

 

Rubyでは整数を整数で割った余りは、小数点が切り捨てられた整数になることから

上記の方法で算出できるとのこと。

もし100の位を取り出すなら最初を100で割れば同様となる。

1の位は(96 / 1 ) % 10 =6となるが、最初に1で割る意味がないので、単に10で割った余りを取得すると考えればシンプル)

 

【複数の戻り値について】

def slice_num(num)

  # 10の位の計算

  ten = (num/10) % 10

  # 1の位の計算

  one = num % 10

  return ten, one

end

 

上記のように複数の値を戻り値とすることもできる。

この場合、slice_numは戻り値の個数分の変数に代入できる。

X, Y = slice_num(○○) 

 

※ちなみに、今回の場合returnはなくても成立するらしい。

 

def addition(a, b)
# 10の位と1の位の数字に対して、足し算を行う
return a + b
end

def multiplication(a,b)
# 10の位と1の位の数字に対して、掛け算を行う
return a * b
end

def slice_num(num)
# 10の位の計算
ten = (num/10) % 10
# 1の位の計算
one = num % 10
return ten, one
end

puts "二桁の整数を入力してください"
input = gets.to_i

X, Y = slice_num(input)
# additionメソッドにX,Yを引数として渡し、処理結果を変数add_resultに代入する。
add_result = addition(X, Y)

# multiplicationメソッドにX,Yを引数として渡し、処理結果を変数multiple_resultに代入する。
multiple_result = multiplication(X, Y)

puts "足し算結果と掛け算結果の合計値は#{add_result + multiple_result}です"