[algorytm] Matura Inf Maj 2008 CKE

0

Ściągnąłem sobie arkusz i przykładowe rozwiązania z CKE i jest tam obliczyć a^n:

Można zauważyć, że an=a(n/2)* a^(n/2) gdy n>1.

Przykładowe rozwiązanie podane jest takie:

krok 1: p := a
krok 2: dopóki n > 1 wykonuj
krok 2.1: p := p * p
krok 2.2: n := n div 2
krok 3: wynikiem jest p

a czy przypadkiem nie powinno być tak ?

krok 1: p := a
krok 2: dopóki n > 1 wykonuj
krok 2.1: p := a * p  <<<< właśnie tak
krok 2.2: n := n div 2
krok 3: wynikiem jest p

Mam rację ?

0

Nie masz racji, niech n=4, a=3.
Twój algorytm:
1: p:=3
2.1: p:=ap (=9)
2.2: n:=n div 2 (=2)
2.1 p:=a
p (=27)
2.2 n:=n div 2 (=1)
3. wynikiem jest 27

1 użytkowników online, w tym zalogowanych: 0, gości: 1