Оценка трудоемкости алгоритма c++
Имеется такое задание(скриншот), я написал две функции для бинарного и простого возведения в степень, но я НЕ понимаю как сделать подсчет итераций/оценку трудоемкости.
Вот сам код:
#include <iostream>
using namespace std;
long pow(long c, long d)
{
if (d == 0)
{
return 1;
}
if (d % 2 == 0)
{
return pow(c * c, d / 2);
}
return c * pow(c, d - 1);
}
int binpow(int a, int n)
{
if (n == 0)
{
return 1;
}
if (n % 2 == 1)
{
return binpow(a, n - 1) * a;
}
else
{
int b = binpow(a, n / 2);
return b * b;
}
}
int main()
{
long c, d;
int a, n;
cin >> c >> d;
cin >> a >> n;
cout << binpow(a, n);
cout << pow(c, d);
return 0;
}
