Cielが暇つぶしに以下の一人遊びをする.
条件分岐やるだけ.powなどのメソッドを使うとループ使わずに解ける.
scoreにnA * scoreAを加える.
class FoxPlayingGame { public: double theMax(int nA, int nB, int paramA, int paramB) { double res; double scoreA, scoreB; scoreA = paramA / 1000.0; scoreB = paramB / 1000.0; res = scoreA * nA; if(scoreB >= 1.0){ if(res >= 0.0){ res = res * pow(scoreB, (double)nB); } } else if(scoreB >= 0.0){ if(res <= 0.0){ res = res * pow(scoreB, (double)nB); } } else if(scoreB > -1.0){ if(res < 0.0){ if(nB >= 1) res = res * scoreB; } } else{ if(res >= 0.0){ nB = nB / 2 * 2; } else{ if(nB > 0 && nB % 2 == 0){ nB = nB - 1; } } res = res * pow(scoreB, (double)nB); } return res; } };
トータル2回ミスで125.01点.本番だと論外.
コーナーケースだけならまだしも,条件の判断ミスがあるのはだめすぎる.