私はInterviewStreetの問題に取り組んでいますhttps://www.interviewstreet.com/challenges/dashboard/#problem/4fcf919f11817、アルゴリズムは正しいですが、それでもいくつかの間違った答えが得られます。数時間後、問題は印刷機能:
void printHalf(int64_t x) {
if (x % 2 == 0)
printf("%lld\n", x / 2L);
else
printf("%lld.5\n", x / 2L);
}
この関数は64ビット整数を取り、その半分を出力します。この関数を次のコードに変更すると、私のソリューションはすべてのテストケースで機能します。
void printHalf(int64_t x) {
if (x % 2 == 0)
printf("%lld\n", x / 2L);
else
printf("%.1f\n", x / 2.0);
}
私の意見では、2つの関数の結果は同じであるため、少し奇妙に見えます。