Wskazówka:
W zadaniu trzeba obliczyć liczbę operacji wykonywanych w algorytmie. Należy pamiętać o tym, że w przypadku gdy bit rozwinięcia binarnego jest równy 1, zawsze dodatkowo wykonujemy jedno mnożenie.

Dla k = 4 reprezentacja binarna jest równa 100, co daje kolejne potęgi równe:
x (pierwszy bit równy 1),
x2 = x (drugi bit równy 0) ,
x4x2 * x2 (trzeci bit równy zero),
stąd liczba mnożeń jest równa 2.

Dla k = 5 = (101)2 kolejne potęgi liczby x byłyby równe:
x (pierwszy bit równy 1),
x2 = x (drugi bit równy zero),
x4 = x2 * x2, x5 = x4 * x (dodatkowe mnożenie, gdyż trzeci bit równy 1),
zatem otrzymujemy 3 mnożenia.

Oczywiście można dalej postępować analogicznie: po zamianie liczby k na system binarny wypisać kolejne potęgi liczby x i sprawdzać, ile mnożeń zostało wykonanych. Można jednak to zadanie wykonać sprytniej. Łatwo zauważyć, że każde 0 w zapisie binarnym daje nam jedno mnożenie, każda jedynka w zapisie binarnym (z wyjątkiem najbardziej znaczącej) daje nam 2 mnożenia. W ten sposób dla k = 6 = (110)2 mamy 2 + 1 = 3 mnożenia, dla k = 7 = (111)2 wykonujemy 2 + 2 = 4 mnożenia itd. W ten sposób wypełnienie tabeli jest bardzo proste.
Powrót do pytań