Witam,
Czy istnieje gdzieś jakaś lista głupich błędów na które powinno się zwracać uwagę na SPOJ-u? Chyba by mi się przydało coś takiego, bo już drugi raz mam taką sytuację, że przechodzę testy, a maszyna nie przyjmuje wyniku. Czyżbym znowu gdzieś zapomniał dać end of line?
Kod usunięto
O, tak. Istniała taka lista. Chciałem Ci podlinkować na starym forum, ale widzę, że albo admini usunęli, albo się popsuło. Więc jeden z pierwszych punktów to było:
W pierwszej linii liczba testów t, w kolejnych liniach po dwie liczby w każdym wierszu.
Dwie powyższe linijki nie robią tego czego od nich oczekujesz. Powinieneś napisać np albo:a = nwd(a, b)albo po prostu:cout << nwd(a, b) << endl; i oczywiście dodać jeszcze ilość testów.
Jeżeli masz AC, powinieneś usunąć kod.
Tu się akurat nie zgodzę. Na początku też tak myślałem, ale przecież funkcja 'nwd' przyjmuje referencje do zmiennych. Czyli na koniec 'a' będzie zawierać prawidłową odpowiedź.Natomiast
a = nwd(a, b)
przy braku returna w funkcji będzie zwracać jakieś śmieci.
Fakt, masz rację , mój błąd.
witam, mam problem z tym programem. nie wiem w ktorym miejscu jest blad, ale kompilator na stronie twierdzi ze przekraczany jest czas. kod zamieszczam na zewnetrznej stronie, bo nie jest jakim sposobem umieszcza sie na forum. wielokrotnie powtarzana przez wszystkich metoda "ctrl+k" u mnie wyswietla okienko do wklejenia linku...
https://ideone.com/eHa6om
jesli ktos bedzie potrafil pomoc, to bede zobowiazany
witam. Jak sprawdzam program na rozwiązanych przykładach to działa ale jak kompiluje w spoju to wyrzuca mi błędną odpowiedz?http://ideone.com/s3QC3b
Tak skomplikowanego sposobu wyznaczania NWD jeszcze nigdy nie widziałem. Wyszukaj sobie coś na temat algorytmu Euklidesa.
ok poprawie na algorytm Euklidesa ale może wiesz dlaczego mój program wyżuca mi błędną odpowiedź na teście?
Tak, sądzę, że wiem. Dlatego, że jest nie do końca poprawny?
np:nwd (11, 77) = 11.....nwd(11, 110) = 11nwd(11, 121) = 1 !? ....itd
Witam serdecznie,Czy jest ktoś w stanie stwierdzić, dlaczego sędzia uznaje "błędną odpowiedź" poniższego programu:
(kod usunięty)
Przechodzi on wszystkie możliwe testy.
Dzięki za szybką odpowiedź.1. Testuję w Code::Blocks IDE 16.01, GCC 4.9 SeriesWszystkie wyniki w programie wychodzą mi poprawnie (te z polecenia też), więc nie wiem skąd różnica z ideone.2. Znam tę metodę.3. Zgadzam się, w tym wypadku jest niepotrzebny, ale nie jest błędem.
(kod usuniety)
prawdopodobnie dzieje się tak przez to że twoja funkcja nwd nie zwrca obliczonej wartości za pomocą return i dlatego domyślnie wysyłane jest 0. Starczy dopisać return a i wtedy uzyskasz zarówno na ideone jak i na na spoju te same wyniki co w konsoli.
Dodatkowo sprawdź twój kod dla np.10 1020 20.....po poprawieniu tego uzyskasz AC
PS nie zapomnij usunąć kodu
Rzeczywiście to było przyczyną błędu. Poza tym, tak jak napisałeś, pominąłem przypadek dla takich samych liczb na wejściu.
Dziękuję Ci bardzo za pomoc. Program zaliczony.
Nie przechodzi też test10 00 20itdz analogicznego powodu jak wyżej.
PSUstaw w swoim IDE [code::blocks] ostrzeżenia np::settings / compiler .... // enable .... [-Wall] // enable ... [-pedantic] itdCzym więcej tym lepiej.
Napisałem program do NWD: http://ideone.com/TeZcDBale gdy sprawdza mój kod to wyświetla, że mam błędną odpowiedź pomimo, że jak sprawdzałem wartości pokazane w przykładzie to wartości wszystkie się zgadzały
czy zanim wstawiłeś ten post sprawdziłeś działanie twojego programu dla jakiegokolwiek testu podanego na postach powyżej np. -mój ostatnio podawany test (10 10) powoduje u ciebie błąd wykonania-dane od najbre j(10 0) powodują wieczne zapętlenie się twojego programu
Mój program też nie przeszedł testu z zerem ale został zaakceptowany, wiec nie trzeba pisać tutaj żadnego warunku.