技術ブログっぽいなにか

Ruby・Railsメインでいろんなこと書きます

Rubyの練習問題を解いた話【累乗】


あるサイトの、Rubyの練習問題を解きました。
正解率90%超えの問題を選んだんだけど、まあまあ難しかった気がします。

2つの数字が入力されるので、それぞれを3乗した数字の差を求めなさいという問題。

自分の書いたコード↓

input_lines = gets
r = input_lines.split("\s")
r_1 = r[0].to_i
r_2 = r[1].to_i
puts (r_1 ** 3) - (r_2 ** 3)


まずinput_lines = getsで入力されたものを変数に入れる。 input_linesはStringなので、.splitで指定した文字ごとに区切って配列にする。なので、rはArrayになる。
ただ、Arrayの要素ひとつひとつは文字列なので、to_iしてから計算する。


サイトだとプログラムがテストデータで計算してくれるようなので、自分でもコンソールで叩いてみた。↓

irb(main):001:0> input_lines = gets
5 3
=> "5 3\n"
irb(main):002:0> r = input_lines.split("\s")
=> ["5", "3"]
irb(main):003:0> r_1 = r[0].to_i
=> 5
irb(main):004:0> r_2 = r[1].to_i
=> 3
irb(main):005:0> puts (r_1 ** 3) - (r_2 ** 3)
98
=> nil

べき乗(累乗)ってアスタリスク2つつけるの知らなかった。
いや、見たことはあるけど使ったことなかったからすっかり忘れてた…

良い勉強になりました!