34 lines
1.3 KiB
Plaintext
34 lines
1.3 KiB
Plaintext
|
|
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 pkt)
|
|||
|
|
|
|||
|
|
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 | Wartość funkcji przestaw(n) | Liczba wywołań funkcji przestaw |
|
|||
|
|
|----------------|-------------------------------|------------------------------------|
|
|||
|
|
| 316498 | 134689 | 3 |
|
|||
|
|
| 43657688 | | |
|
|||
|
|
| 154005710 | | |
|
|||
|
|
| 998877665544321| | |
|