z1 instrukcja
This commit is contained in:
commit
c77909754a
40
z1.txt
Normal file
40
z1.txt
Normal file
@ -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.
|
||||||
Loading…
Reference in New Issue
Block a user