2011年10月17日月曜日

TopCoder SRM262 Div2 250Pts

このTopCoderの問題はこちらで見ることができる(要TopCoder登録 & 問題文は英語)。

numという数値が与えられる。numに対し、小さい方の二桁の数を置き換えて、factorで割り切れるようにする。置き換えた結果の数はできるだけ小さくしたい。置き換えた数値を(2桁の)文字列として返せ。例えば、num=275とfactor=5であれば、"00"が回答になる。小さい二桁の数を00から99まで順に検討していくと、候補となる値の最小値200は5で割り切れるからである。

私の解答はこちら。

public class DivToZero {

 public String lastTwo(int num, int factor) {
  int n = num - num % 100;
  int res = 0;
  for( int i=0 ; i<100 ; i++ ){
   int val = i+n;
   if( val % factor == 0){
    res = i;
    break;
   }
  }
  return String.format("%02d",res);
 }

}

得点は240.22/250。C言語を使っていたのが長いせいか、ついフォーマット整形関数にsprintfを探してしまうワタシ。

0 件のコメント:

コメントを投稿

フォロワー

ページビューの合計