このTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。問題文について意訳で説明する。
与えられたXという整数に対し、Rev(X)というXの桁を反転させた整数を得ることができる。例えばRev(123)=321、Rev(100)=1である。xとyという二つの正の整数が与えられたとき、Rev(Rev(x) + Rev(y))を返すメソッドを作成せよ。
私の解答はこちら。
public class ReversedSum { public int getReversedSum(int x, int y) { StringBuffer xx = new StringBuffer("" + x); StringBuffer yy = new StringBuffer("" + y); int s = Integer.parseInt(xx.reverse().toString()) + Integer.parseInt(yy.reverse().toString()); StringBuffer ss = new StringBuffer("" + s); return Integer.parseInt(ss.reverse().toString()); } }
得点は243.24/250、1回のsubmitでシステムテストクリア。中央値は約233点。エレガントさを求めるのであればRev(X)という関数を定義するのが良さそうです。
0 件のコメント:
コメントを投稿