1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Ruby】二桁の整数問題

Last updated at Posted at 2021-08-09

二桁以上の整数を入力すると、十の位と一の位の数字の足し算、十の位と一の位の数字の掛け算をそれぞれ行い、最後に2つの結果を足し合わせて出力するプログラムをRubyで作成する。

という問題で私の最初の回答がこちら。

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

if sum >= 10
  num1 = sum / 10 % 10
  num2 = sum % 10
  total = (num1 + num2) + (num1 * num2)
  puts total
end

実行して数値を入力すると確かに要件通り動くように思われますが...
記述のスマートさがありません。

よって下記のようにするといいみたいです。

def addition(a, b)
  a + b
end

def multiplication(a,b)
  a * b
end

def slice_num(num)
  tens_place = (num / 10) % 10
  ones_place = num % 10
  return tens_place, ones_place
end

puts "二桁の整数を入力してください"
input = gets.to_i
X, Y = slice_num(input)
add_result = addition(X, Y)
multiple_result = multiplication(X, Y)
puts "足し算結果と掛け算結果の合計値は#{add_result + multiple_result}です"

ポイントは下記2点
1.整数同士(integer型)の計算だと返り値は整数
2.変数の定義をカンマ区切りにすることで、複数の変数を一度に定義している

感想
Rubyの基礎的なアルゴリズム問題ですが、メソッドへの意識がまだ低いため最初のような回答になったんだと思います。
「考え工夫する」ということ常に意識していきたいです。

1
1
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?