24 / 31
Nov 2016

Proszę o odpowiedź, czy wyniki poniższych testów są prawidłowe?
IN
15
2 3 4 5 7 9 10 12 14 15 21 24 27 28 30
7
1 3 5 7 11 12 14
11
2 4 6 7 11 14 28 33 55 77 111
14
4 6 9 15 21 22 24 25 27 33 50 55 60 65
1
2

OUT
9
3
6
11
0

dlaczego zero?

PS
Wróc sobie do mojej pierwszej podpowiedzi z Jun 19 [były dwie?]

:wink:

PS 2
pozostałe ok

PS 3
Abstarchując od twoich wątpliwości, po prostu dodaj w swoim programie na sztywno warunek, gdy n == 0 out == 1 i zobacz co się stanie.

PS 4
oczywście mam na myśli n == 1

No i nic się nie stało, dalej jest jak było. Ale dzięki za odpowiedź.

Węc może jeszcze sprawdź, co masz dla np jakiegoś takiego cągu:
2 3 5 7 11 13 ..........23
albo
po prostu
2 3
Jeżeli masz zero, to już wiesz, gdzie masz błąd?
Mój program tutaj zawsze mówi jeden, a nie zero.

PS
Oczywiście, to tylko moje przypuszczenie, że tu jest twój problem.

PS 2
Po prostu, domyślnie, zawsze minimum jest jeden, [ciąg jednoelementowy] a dopiero potem sukcesywnie i powoli liczysz, czy nie ma węcej elementów spełnających warunki zadania.

Jednak, chyba tam źle sprawdzałem i już tego nie jestem pewny, a nie chce mi się jeszcze raz sprawdzać.

Dla tych testów mam zero. Wysłałem z innymi wariantami. Po staremu. Jeśli trzymać się warunków, to te zera muszą być. Zatem lipa byłaby w pozostałej części zliczania. Ma może ktoś testy, na których można się wyłożyć? Nie muszą być długie.

Czy Ty czytasz, co sę do Ciebie pisze? Uparłeś się i nie dasz sobe wytłumaczyć i pomóc.

Czytam. Napisałem też, że wysłałem poprawiony kod (może wcześniej wyraziłem się niejasno).

Więc w końcu jak masz zera, czy jedynki?

Po poprawce mam jedynki, zera miałem przed Twoimi uwagami.

A dla testów typu:
1
2
;;;;
1
3
;;;;
1
1
;;;;
masz wszędzie 1 czy zero?

Dla
1
1
mam 0
dla pozostałych z n=1 mam 1
Nawet jak ustawię dla n=1 i x=1 wyjście=1 to też WA. Dlatego prosiłem o testy, na których można się wyłożyć pomimo tego, że wydaje się, iż wszystko jest już ok

Ustawiasz minimum na jeden ..... a nie dla
1
1
masz/miałeś zero
a dla innych inaczej.

Możliwe, że testu z 1 1 nie ma, a gdyby było, to .....
Ale podaję Ci jak odpowiada i jak działa mój program i piszę to już od początku tego wątku,...

Jeżeli nie łapiesz tego, to przypomnij sobie definicję silni.
n! = (n-1)! *n
1! = 1
a ile wynosi:
0! = ?

Nie jestem autorem tetów, więc trudno mi powiedzieć, na jakim się twój kod wykłada, nie widzę co tam wymyśliłeś, moze wtedy byłoby łatwiej?

PS

.. zadaniem jest wyznaczenie długości najdłuższego podciągu, w którym największy wspólny dzielnik każdej pary sąsiadujących elementów jest większy od 1.

Gdy najdłuższym podciągiem jest ciag jednoelementowy, to przestają obowiązywać, nie trzeba sprawdzać powyższych warunków, bo nie ma drugiego elementu z którym to można sprawdzić. Więc atomem nie jest zero a JEDEN

PS 2
Więc teraz, gdy to już w końcu wiesz, może najlepiej, gdybyś napisał zadanie zupełnie od początku i na nowo?

To co wymyśliłem: tu był odsyłacz
NWD sąsiadujących elementów ma być większy od 1. Więc dlaczego dla n=1 i x=1 ma być 1?
Pisanie zadania na nowo - ok, ale jak widać ciągle popełniam błąd, prawdopodobnie ten sam. Chyba, że w algorytmie ciała daję i nie zdaję sobie z tego sprawy.

np takiego rodzaju ciąg [najprostszy z możliwych demaskujący słabość twojego algorytmu]:
12
2 4 6 8 10 12 14 49 60 62 64 66 68 .....
"pułapką" na twój algorytm jest tu 49 + oczywiście wcześniejsze 14

PS
A więc w algorytmie dajesz ciała, a w jego implementacji [zakodowaniu] jeszcze węc [dajesz ciała], ale to już inna bajka na inną okazję

PS 2
Możliwe, że niepotrzebnie upierałem się na ciągach jednoelementowych i błędnie CIę nakierowywałem, ale jak się nie widzi kodu, to trudno wymyśleć odpowiednie testy - chyba, że się jest autorem zadania - ale wtedy to już widzi się wszystko - także wszystkie nadsyłane kody.