commit c77909754af35191e9c8e0f74c49ccd70f064b65 Author: baiobelfer Date: Mon Sep 8 08:32:28 2025 +0200 z1 instrukcja diff --git a/z1.txt b/z1.txt new file mode 100644 index 0000000..c755c0a --- /dev/null +++ b/z1.txt @@ -0,0 +1,40 @@ +**Zadanie 1. Funkcja rekurencyjna** + +Dana jest rekurencyjna funkcja `przestaw`, której parametrem jest nieujemna liczba całkowita: + +``` +przestaw(n): + r ← n mod 100 + a ← r div 10 + b ← r mod 10 + n ← n div 100 + jeżeli n > 0 + w ← a + 10 * b + 100 * przestaw(n) + w przeciwnym razie + jeżeli a > 0 + w ← a + 10 * b + w przeciwnym razie + w ← b + wynikiem jest w +``` + +**Uwaga:** +Operator `mod` oznacza resztę z dzielenia, natomiast `div` – część całkowitą z dzielenia. + +--- + +**Zadanie 1.1. (0–3)** + +Uzupełnij tabelę – wpisz w drugiej kolumnie wynik funkcji `przestaw(n)` dla podanych wartości argumentu $ n $ oraz wpisz w trzeciej kolumnie liczbę wywołań funkcji `przestaw` łącznie z pierwszym wywołaniem z parametrem $ n $. + +| $ n $ | Wykonanie funkcji `przestaw` | Liczba wywołań funkcji `przestaw` | +|------------------|-------------------------------|------------------------------------| +| 316498 | 134689 | 3 | +| 43657688 | | | +| 154005710 | | | +| 998877665544321 | | | + +--- + +**Wskazówka:** +Funkcja `przestaw` działa poprzez rozkładanie liczby na pary cyfr od końca i ich przestawianie w określony sposób. Każde rekurencyjne wywołanie redukuje liczbę o dwa ostatnie cyfry (dzielenie przez 100). Liczba wywołań zależy od liczby par cyfr w liczbie.