1 / 5
Jul 2022

Witajcie, siedzę już któryś dzień nad tym zadaniem… i powoli się poddaje. Opisze mój pomysł.

Moje założenie jest takie aby przechowywać każdą następną liczbę w tej samej zmiennej “a”, a zmienna “b” będzie jakby zmienną pomocniczą do warunku, w którym będę instrumentował licznik powtórzeń liczby 42, kryjący się pod zmienną “c”.

C#

Czy jest opcja zrobić to zadanie w ten sposób, czy zmienić kierunek myślenia i wymyślić coś innego?? Bo utknąłem… nie jestem w stanie wymyślić warunku do wyzerowania mojego licznika który mam pod zmienną “c”. Wszystkie aktualne próby spaliłem;/ i to 3 dzień burzy mojego mózgu… elsa wyciąłem bo był bez sensu

  • created

    Jul '22
  • last reply

    Jul '22
  • 4

    replies

  • 428

    views

  • 2

    users

  • 1

    like

  • 2

    links

  1. Wklej prawidłowo kod albo przekaż go przez link do ideone.
  2. Z tego co widzę, jeżeli wczytana przez Ciebie do zmiennej a liczba jest różna od 42, ustawiasz b na true. Czyli b to flaga informująca, że wczytana przez Ciebie w danej chwili liczba jest różna od 42. Ale nigdzie nie przywracasz b = false po wczytaniu kolejnej liczby wynoszącej np. 42.
  3. Jakieś WriteLine? Ten kod niczego nie zwraca.
  4. Istnieją już inne tematy dotyczące tego zadania. Po co tworzyć kolejny?
  5. Jeśli zaczynasz, przeczytaj koniecznie! <--kliknij w to proszę!
  1. Poprawione
  2. Tak dokładnie, z rozpędu nie przypisałem flagi w warunku.
  3. Pominąłem bo głównie chodzi mi o logikę wyjscia i przewrwania pętli - ale również dodałem dla przejrzystości zwracanych wyników.
  4. Opływowo, bo chciałem zrobić to zadanie według mojego założenia - i się sprawdzic, a w innych tematach rozwiązania i logika były inne :slight_smile:

Nie chce korzystać z rozwiązań, jeśli będe już z lufą pod ścianą to w skrajności zacznę plądrować:)

Główny mój problem to reset licznika, który zlicza ilości wystąpień:)

  1. :+1:
  2. :+1:
  3. Rozumiem, ale to utrudnia testowanie. W szczególności nie mogę wówczas ocenić, w którym miejscu - na początku pętli, za nią, w którymś ifie, … - uznajesz za stosowne coś wyświetlić ani co konkretnie.
  4. Co do zasady, na SPOJu oczekuje się dopisywania do już istniejących tematów. Docelowo powinno być tak, że istnieje jedno zadanie i jedna dyskusja do niego. W praktyce z wielu powodów jest to mocno naruszane, ale zasada to jednak zasada a pacta sunt servanda :wink:

No, a teraz wracając do punktu 3 to właśnie dostałem Twoim kodem AC więc wszystko jest w nim o.k.

I kolejna zasada na SPOJu, która w gruncie rzeczy też jest bardziej teoretyczna, ale zaleca się edytować swoje wpisy po otrzymaniu AC i usunąć wklejony prawidłowy kod. W praktyce jest jak poprzednio, a poza tym da się przejrzeć historię wpisów, ale no :slight_smile:

PS

Tylko pytanie brzmi: po co go resetować? Wypełnił swoje zadanie i kij z nim.

W bardziej rzeczywistym świecie niż SPOJ Twoje rozwiązanie byłoby jakąś funkcją wywoływaną w ramach większego projektu w określonych miejscach. Wtedy:

  • deklarowałbyś oraz inicjalizował zmienną c (co robisz),
  • zliczał to co trzeba (co robisz),
  • zwracał jakiś wynik osobie wywołującej Twoją funkcję. Tym samym wyszedłbyś poza zakres ważności Twojej zmiennej więc zarezerwowana dla niej pamięć zostałaby zwolniona. Tego w taki sposób nie zrealizujesz w tym zadaniu, ale w gruncie rzeczy gdy program kończy się wykonywać to zwalniana jest pamięć więc zmiennej c nie ma. I tyle - nie ma potrzeby jej resetować.

Bardzo Ci dziękuję za cenne dla mnie wskazówki :slight_smile:
Już rozumiem i na przyszłość również będę się stosował do wspomnianych zasad:)