2011年12月16日金曜日

TopCoder SRM282 Div2 250Pts

このTopCoderの問題はリンクが無いので原文は省略。問題文について、おおまかに説明する。

数値の配列と目標となる平均値が与えられる。あと1つ数値をリストに加えて、新しくできたリストの平均が目標値になるようにしたい。例えば、{ 3.0, 7.0, 2.5 }という配列と目標となる平均値が4.5と与えられた場合、リストに加える値は5.5になる。理由は(3.0+7.0+2.5+5.5)/4 = 4.5だからである。

私の解答はこちら。

public class FixTheAverage {

 public double add(double[] list, double target) {
  double num = target * (list.length+1); // 目標となる平均になるときの合計で初期化
  for( int i=0 ; i<list.length ; i++ ){
   num -= list[i]; // リストの要素で引き算
  }
  return num; // 残った値が答
 }

}

得点は248.69/250、中央値は245.14という易問。特に説明はいらないでしょう。

0 件のコメント:

コメントを投稿

フォロワー

ブログ アーカイブ

ページビューの合計