Hurra
Zadanie o nazwie Hurra pochodzi z Olimpiady Informatycznej Juniorów (OIJ) rozgrywanej w roku 2019/2020. Olimpiada jest przeznaczona dla uczniów klas szkoły podstawowej, a więcej o niej można się dowiedzieć z jej strony: oij.edu.pl. Na tej stronie publikuję przykładowe rozwiązanie, które wygeneruje nam 100 punkowy wynik.
Treść zadania
Mała Bajtynka lubi liczyć, a szczególnie uwielbia liczby 7 i 11. Mimo najlepszych starań nauczycieli, Bajtynka uroczyście
celebruje, zarówno w mowie, jak i na piśmie, każdą napotkaną liczbę podzielną przez 7, zamiast jej nazwy wykrzykując
(albo pisząc) Hurra!. Liczenie Bajtynki może więc wyglądać tak:
. . . , 5, 6, Hurra!, 8, 9, . . .
albo tak:
. . . , 12, 13, Hurra!, 15, 16, . . .
Podobnie każda liczba podzielna przez 11 zastępowana jest okrzykiem Super! (na przykład: . . . , 31, 32, Super!, 34, . . . ). Jeśli zaś Bajtynka napotka liczbę, która jest podzielna zarówno przez 7, jak i 11, zamiast niej woła Wiwat! – jest to nieco archaiczne, ale historia jest, zaraz po informatyce, ulubionym przedmiotem Bajtynki. Spraw Bajtynce prezent na urodziny – napisz program, który w jej imieniu doliczy do dużych liczb!
Przykładowe wejścia i wyjścia
- Dla liczby
12
1 2 3 4 5 6 7 8 9 10 11 12 | 1 2 3 4 5 6 Hurra! 8 9 10 Super! 12 |
Pełna treść zadania znajduje się tutaj.
Kod programu
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | n = 80 liczby = [] for x in range(1, n+1): if not (x % 7 == 0 or x % 11 == 0): liczby.append(str(x)) else: if x % 7 == 0: p += 1 if x % 11 == 0: liczby.append("Wiwat!") p += 1 else: liczby.append("Hurra!") else: liczby.append("Super!") print("\n".join(liczby)) |
Pisząc skrypt, warto zastanowić się w jakiej kolejności ułożyć instrukcje warunkowe tak, by program miał jak najmniej rzeczy do sprawdzania.