Sprawdzenie i Pomoc w napisaniu algorytmu

0

Wykaż całkowitą poprawność programu (tj. wykaż częściową poprawność oraz wskaż zbieżnik pętli uzasadniając, dlaczego program się zatrzymuje). Zaproponuj specyfikację. Oblicz liczbę wykonywanych przez funkcję operacji arytmetycznych o na tej podstawie oszacuj pesymistyczną (O-duże) złożoność obliczeniową.

int potega(int a, int b) 
{
     int i = 0;
     int y = 1;
     while(i != b)
     {
          y = y * a;
          i = i + 1;
     }
     return y;
}

To tylko dobrze mi szacuje złożoność i nie wiem co zmienić żeby wszystko dobrze działało

include <iostream>

using namespace std;

int main()
{
    int potega(int a, int b)
{
     int i = 0;
     int y = 1;
     while(b - i > 0)
     {
          y = y * a;
          i = i + 1;
     }
     return y;
}
}
// oszacowana złożoność O(n), (w tym przypadku O(b)), oraz zbieżnik
//niezmiennik i^y*y=a^b

1
  1. popraw nazwe tematu

  2. poczytaj o funkcjach

0

No ja pisałam z nim ale to liczy tylko złożoność i był za to 1 punkt na 10 i chce poprawić

Nie bardzo wiem jak policzyć liczbę operacji

0

Nie licząc kilku stałych operacji na początku, przypisanie, wywołanie parametrów, to pętla wykonuje się b razy (b`` - liczba całkowita >=0``` ), a w niej dwie instrukcje + sprawdzenie warunku.

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