2013年1月8日火曜日

TopCoder SRM451 Div2 250Pts

このTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。問題文についておおまかに説明する。

リックは固くいくつかの数字に関係する魔法のパターンがあると信じている。この信念はそこらじゅうで奇妙なパターンを見つける彼の傾向の結果である。リックは最近いくつかの数字に"魔法の源"があると考えた。例えば、1370974という数字は、以下の手順により、1234に等しい魔法の源を持つ。これは1234+12340+123400+1234000=1370974という計算ができることによる。n個の数字の数列で、i番目の数字が1234に10^iをかけたものの総和が1370974になるものがあることから、公式に1234は1370974の魔法の源である。この定義により、正の整数はそれ自身の魔法の源でもあることに注意。さて、sourceとAという正の整数が与えられたとき、Aより大きく、sourceがxの魔法の源となるような最小の数を返せ。

私の解答はこちら。

public class ReverseMagicalSource {

 public int find(int source, int A) {
  int num = source;
  int i = 1;
  while( true ){
   if( num > A ) break;
   num += source * Math.pow(10, i);
   i++;
  }
  return num;
 }

}

特に注意点はなし。言われた通りに書くだけですね。強いて言うなら、最小の数を判定するときに、Aより大きくの場所でうっかり=をつけないぐらいですが...

0 件のコメント:

コメントを投稿

フォロワー

ブログ アーカイブ

ページビューの合計