6 / 10
Oct 2021

Cześć ! od dłuższego czasu usiłuję rozwiązać zadanie Rysunki Bajtelka. Mój kod zwraca wartości takie jak w przykładzie w zadaniu, też zwraca poprawne dla testów które udało mi sie znaleźć na forum. Macie może jakieś pomysły co tu jest nie tak ? :frowning: Z góry dzięki za pomoc !

kod usunięty

  • created

    Oct '21
  • last reply

    Oct '21
  • 9

    replies

  • 627

    views

  • 3

    users

  • 2

    likes

  • 1

    link

Jedyne, co mi się tu nie podoba, to sposób w jak liczysz powierzchnię wielokąta:

minisum = listX[i] * (listY[-1] - listY[i - 1])

Pierwszy i ostatni punkt na liście są takie same, więc powyższa linijka wykona się dwa razy, dla tego samego punktu.
Ja zazwyczaj piszę:

for i in range(1, len(listX)):
  minisum = listX[i] * listY[i-1] - listX[i-1] * listY[i]

I nie potrzeba żadnych dodatkowych ifów

Druga sprawa to:

overall = math.ceil(black*10)+ math.ceil(grey*6)
print(int(overall))

Nie wiem, czy potrzebne są tutaj wywołania ceil. Samo rzutowanie na inta w kolejnej linijce powinno załatwić sprawę.

Dzięki za odpowiedź :slight_smile: niestety, spróbowałem zaproponowanych przez Ciebie zmian, nadal bez rezultatu

kod usunięty
Zgodnie z sugestią zmieniony wzór i wywalone ceil

No cóż, wygląda na to, że autor zadania nie był zbyt skrupulatny, jeśli chodzi o puste linie między testami. Dostosuj swój kod, żeby radził sobie jeśli puste linie są albo ich nie ma i będzie gites

Dzięki wielkie za pomoc, rzeczywiście program musiał być niewrażliwy na ewentualny brak pustej linii :slight_smile:

Teraz możesz sprawdzić, czy twój wcześniejszy sposób liczenia powierzchni był prawidłowy, czy nie