M2

13_1b

524
Następujący rekurencyjny algorytm mnożenia dwóch liczb całkowitych dodatnich x, y jest realizowany z użyciem operacji arytmetycznych dodawania i dzielenia całkowitego przez 2.

iloczyn(x, y):
jeżeli y = 1:
wynikiem jest x
w przeciwnym razie:
k = y div 2
z = iloczyn(x, k)
jeżeli y mod 2 = 0:
wynikiem jest z + z
w przeciwnym razie:
wynikiem jest x + z + z

Uwaga: x mod y oznacza resztę z dzielenia x przez y, natomiast x div y oznacza wynik
dzielenia całkowitego x przez y.
Dla danych liczb x, y interesuje nas liczba wykonywanych operacji dodawania podczas
obliczania wyniku funkcji iloczyn(x, y).
Przykład 1.
Dla liczb x=9 i y=11 algorytm wykonuje 5 dodawań. Działanie funkcji iloczyn(9, 11) można
zilustrować w następujący sposób (w nawiasach obok wskazano liczbę wykonywanych
operacji dodawania):
iloczyn(9, 11) = 9 + z + z, (dwa dodawania)
gdzie z = iloczyn(9, 5)
iloczyn(9, 5) = 9 + z + z, (dwa dodawania)
gdzie z = iloczyn(9, 2)
iloczyn(9, 2) = z + z, (jedno dodawanie)
gdzie z = iloczyn(9, 1)
iloczyn(9, 1) = 9




Dla liczb x, y wymienionych w poniższej tabeli podaj liczbę operacji dodawania, jaka zostanie wykonana podczas obliczania wyniku funkcji iloczyn(x, y).




W odpowiedzi podaj łączną liczbę dodawań
anagram.txt fotowoltaika.txt instalacje.txt kraje.txt slowa1.txt slowa2.txt slowa3.txt slowa4.txt urzadzenia.txt r1.jpg r2.jpg r3.jpg r4.jpg