Używanie typów zmiennoprzecinkowych w tym zadaniu jest ryzykowne. Może i daje to dobre wyniki, lecz dla coraz to większych liczb dokładność będzie się rozjeżdżać. Stąd najprawdopodobniej ta różnica w ostatnim teście podesłanym przez @redysz. Nie polecam dalej w to brnąć, chociaż i tak kiedyś samemu mi się to udało przepchnąć na typie double
, w C++ rzecz jasna.
To zdecydowanie da się zrobić przy użyciu tylko liczb całkowitych! Jak to zrobić? Ogólnie mówiąc, to trzeba by było poskracać licznik z mianownikiem gdzie się da, i wymnożyć to co zostanie. Jak to zakodzić, to już nie będę mówił, żeby nie psuć zabawy. Chociaż to i tak już duża podpowiedź.
No, to pozdro Jack, i do roboty.