3.4 nie zrobisz programowo (w ogóle całe zadanie ma na celu sprawdzenie zdolności algorytmicznego myślenia, nie pisania w C++, chociaż jako wprawkę nie zaszkodzi tego sobie rozpisać).
Musisz zauważyć, że:
- Wraz z obiegeim "małej" pętli (tej gdzie licznikiem jest 'i' ) p2 jest n razy mnożone przez k - czyli wyliczasz n-tą potęgę liczby k, która zapisywana jest w p2.
- w "dużej" pętli zaś masz na początku liczenie kolejnych potęg n, "małą" pętlę, sumowanie składników p1 i p2 oraz zwiększanie k o jeden
Po zobaczeniu tego widzisz, że ogólnie otrzymujesz w wyniku sumę pierwszych n wyrazów ciągu (szeregu?) którego k-ty element sumą e-n do potęgi k-tej i k do potęgi e-n-tej: (nk + kn)
3.5 pewnie jakoś by się dało, na przykład wstawiają licznik inkrementowany przy każdym mnożeniu/dodawaniu i potem wyprowadzając sobie jakiś wzorek, ale prościej jest zauważyć, że dla każdego obiegu pętli musisz wykonać:
-jedno mnożenie (p1=p1n;)
-dwa dodawania (suma=suma+p1+p2;)
//(czyli razem trzy operacje)
-małą pętlę - pętla wykona się n razy, z każdym obiegiem robiąc jedno mnożenie (p2=p2k) - stąd - n mnożeń
Więc jeden obieg "dużej" pętli to 1+2+n=n+3 działań.
Duża pętla wykona się n razy - stąd (n+3)*n = n^2 +3n
Jasne? ;-)
3.6 To też myślenie. Jak zamienić potęgowanie na iteracyjną silnię z k?
Zmieniając licznik na k i zamieniając mnożenie p2=p2k; na p2=p2i