Testy mimo, że poprawne to jednak zwraca mi błąd
"Błędna odpowiedź".
Mogę tu wkleić kod?
<=link usunięty=>
Zadanie zrobione matematycznie
created
last reply
- 10
replies
- 1.2k
views
- 4
users
Testy mimo, że poprawne to jednak zwraca mi błąd
"Błędna odpowiedź".
Mogę tu wkleić kod?
<=link usunięty=>
Zadanie zrobione matematycznie
o kurcze dzięki wielkie @mariusz193 !
Jak mogłem nie zauważyć.
Czy mam usunąć link do ideone?
Pozdr. Jack
Jeżeli link do ideone jest bliski do rozwiązania to usuń. Jeżeli musiałeś aplikację napisać na nowo, a to co wstawiłeś na ideone bardziej innym (bezmyślnie kopiującym) będzie przeszkadzać niż pomagać to możesz usunąć bądź zostawić.
Przynajmniej gdzieś taką logikę przedstawił @narbej i myślę, że jest słuszna.
Kod jest bliski rozwiązania, a teraz nawet jest rozwiązaniem - czy może innym przeszkadzać? - Nie wiem.
Jest to zrobione matematycznie tak jak mnie nauczono liczyć dwumiany. Wszędzie w internecie jest wersja iteracyjna, która jest jakaś taka, no nie wydaję mi się, że od tak można na to wpaść więc tak czy siak wątpię, żeby ktoś chciał wykorzystać mój kod.
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.
No to na przykład taki test:1
39 29
Poprawny out:635745396
Twój out:-223248063
Problem tkwi w tym, że w trakcie przymnażania zmiennych z1
i z2
w odpowiedniej pętli for
, zmienne te przekraczają swój maksymalny zakres. Jest to jak najbardziej możliwe, mimo iż oczekiwany wynik jest mniejszy niż 2^31 - 1
.
Aby program przeszedł, musiałbyś tylko nieco inaczej podejść do skracania liczb licznika z liczbami mianownika.
Topic | Category | Replies | Views | Activity |
---|---|---|---|---|
PP0504B - StringMerge - w języku C | Zbiór zadań | 5 | 176 | Jun '24 |
MBPROB01 - History version in plaintext pl.spoj.com | Zbiór zadań | 6 | 143 | Jul '24 |
TFRACAL - Kalkulator ułamków | Zbiór zadań | 2 | 123 | Feb 1 |
TOPSORTL - Porządek leksykograficzny w grafie | Zbiór zadań | 3 | 122 | Jul '24 |
FR_08_11 - Gra w bańki | Zbiór zadań | 1 | 146 | Jun '24 |