inf2025Mz1/z1.txt
2025-09-08 08:32:28 +02:00

41 lines
1.6 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

**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. (03)**
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.