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つつけるの知らなかった。
いや、見たことはあるけど使ったことなかったからすっかり忘れてた…
良い勉強になりました!