Przejdź do treści

Pętle (Część 1)

Materiały

Dla nauczyciela

Materiał dla nauczyciela

Dla ucznia

Pętla while (MAIN2)

Pętla for (MAIN2)

Zadania

Zadanie 1. Dwójki

Dana jest liczba naturalna \(x\) (\(x<10^{18}\)). Dla każdego \(x\) wypisz liczbę potęg \(2\) mniejszych bądź równych każdego z \(x\).

Przykład

Wejście Wyjście
10 4
64 7
Wskazówka

Zastosuj pętlę while do obliczenia kolejnych potęg dwójki.

Sprawdź kod na Szkopule

Zadanie 2. Litery w liczbie

Janek bada właściwości liczb i ostatnio szuka takich liczb, które zapisane w postaci szesnastkowej zawierają co najmniej jedną literę.

Wejście

Pierwszy wiersz danych zawiera liczbę naturalną mniejszej od tryliona.

Wyjście

Wypisz komunikat TAK, jeśli w postaci szesnastkowej występują litery lub NIE – jeśli ich brak.

Przykład

Wejście Wyjście
54 NIE
255 TAK
Wskazówka

Aby zamienić liczbę z systemu dziesiętnego na liczbę w systemie o dowolnej innej podstawie wystarczy dzielić przez nową podstawę. W tym przypadku jest to 16.

Wskazówka

Podczas zamiany zamiast wypisywać kolejne reszty, sprawdź, czy dana reszta jest literą w zapisie szesnastkowym.

Sprawdź kod na Szkopule

Zadanie 3. Małpy na wybiegu

Mały Bitek trenuje małpki. Umie już je ustawić w jednym rzędzie. Planuje teraz kolejne sztuczki. Na noc jednak Bitek musi schować małpki na wybiegu. Pomóż mu!

Wejście

W pierwszym i jedynym wierszu wejścia znajduje się jedna liczba całkowita \(n\) (\(1 \leq n \leq 1000\)) – liczba małpek.

Wyjście

Wypisz \(n\) znaków @ obok siebie otoczonych płotkiem ze znaków #.

Przykład

Wejście Wyjście
5 #######
#@@@@@#
#######
Wskazówka

Użyj trzykrotnie pętli for, oddzielnie dla każdego rzędu.

Sprawdź kod na Szkopule

Zadanie 4. Szachownica

Napisz program, który dla podanej na standardowym wejściu liczby całkowitej \(n\), narysuje szachownicę z cyfr \(0\) i \(1\) o boku \(n\).

Wejście

Jedyny wiersz danych zawiera liczbę całkowitą \(n\) (\(1 \leq n \leq 200\)).

Wyjście

Program powinien wypisać szachownicę o wielkości \(n\).

Przykład

Wejście Wyjście
5 01010
10101
01010
10101
01010
Wskazówka

Spróbuj napisać pętlę wypisującą pierwsze 4 rzędy szachownicy. Czy widzisz powtarzany fragment?

Wskazówka

W tym zadaniu musisz zastosować zagnieżdżonej pętli for. Przykład takiej pętli:

    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            cout << j << " ";
        }
    }

Sprawdź kod na Szkopule

Zadanie 5. Najbliższy palindrom

Mały Bitek przeczytał na Wikipedii: Palindrom (gr. palindromeo – biec z powrotem) – wyrażenie brzmiące tak samo czytane od lewej do prawej i od prawej do lewej. Janek szybko ułożył sobie jeden palindrom (biorąc pod uwagę tylko litery): „U Izydy żądze na wyrku co noc ukrywane, zdąży Dyziu?”. Potem zaczął wymyślać całą masę następnych. Niestety – dużo gorzej mu idzie z liczbami. Chciałby szybko zamienić dowolna liczbę (jeśli nie jest ona palindromem) na najbliższy większy od niej palindrom. Czy mu pomożesz?

Wejście

Pierwszy wiersz danych zawiera liczbę całkowitą \(k\) (\(10 \leq k \leq 10^6\)) do zamiany na palindrom.

Wyjście

Program powinien wypisać w jedną liczbę całkowitą – najmniejszą możliwą liczbę nieujemną, którą należy dodać do danej liczby, aby otrzymać palindrom.

Przykład

Wejście Wyjście
150 1
55555 0
142 9
Wskazówka

Zastanów się, jak odwrócić liczbę całkowitą. Zastosuj modulowanie przez 10 i dzielenie całkowite w pętli while.

Sprawdź kod na Szkopule