この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 件のコメント:
コメントを投稿