Во-первых, я не совсем уверен, что вы пытаетесь вычислить, но вы можете уделить больше внимания крайним случаям, например, отрицательным аргументам или случаям, когда row < col
.
Теперь, без при условии col == row
(и при условии col >= 0
) общее количество вызовов будет суммой треугольника Паскаля, что примерно равно pow(2, col+1) - 1
. Таким образом, это простая верхняя граница стоимости.
В точке, где col == row
(предполагая изначально row > col
), ваше дерево «усечено». Рассчитать сложность с этого момента - это интересный математический вопрос, выходящий за рамки Stack Overflow (хотя вы можете попробовать Math Stack Exchange ).
Обратите внимание, что этот код чрезвычайно неэффективно - экспоненциальное время работы в большинстве случаев непомерно дорого, и эту специфическую проблему c можно решить с помощью мемоизации со значительно меньшими затратами (менее pow(col, 2)
).