Оценка трудоемкости алгоритма 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;
}

Само задание


Ответы (0 шт):