Ruby 回文数の計算
解答が回文数になる問題です。
- 入力した数字の桁を逆から並べ、反転させる。
- 元の数字と、反転させてできた数字を足し算する。
- 足し算してできた数字を用いて 1 番目の操作から繰り返す。
- 12321のように回文数になれば出力する
例
入力123
n = gets.chomp loop { r = n.chars.each_slice(1).map(&:join).reverse.join.to_i n = n.to_i if n == r puts r break else n += r end n = n.to_s }
入力を数値ではなく文字列で入力します。
n.chars.each_slice(1).map(&:join).
でにと文字ずつの配列にしています。reverse
で配列を逆転させ、join
で文字列に変換し、to_i
で数値に変換しています。 loopで反転させても一緒なら出力し、違うならばnとrをたし繰り返しています。