Этот метод в основном вычисляет "x
, возведенный в степень y
". Он делает это рекурсивно образом.
Во-первых, он определяет базовый случай : все, что возведено в степень 0, равно 1.
Затем он определяет, что делать во всех остальных случаях: x * Pow(x, y - 1)
. Предполагая, что y
большой, что такое x * Pow(x, y - 1)
? Это x * x * Pow(x, y - 2)
, что, в свою очередь, x * x * x * Pow(x, y - 3)
. Смотрите образец здесь? В конце концов, вы достигнете точки, где второй аргумент, y - N
, равен 0, который, как мы установили, равен 1. В этот момент, сколько x *
мы получили? Точно y
.
Давайте посмотрим на это в действии для Pow(2, 5)
:
Pow(2, 5)
2 * Pow(2, 4)
2 * 2 * Pow(2, 3)
2 * 2 * 2 * Pow(2, 2)
2 * 2 * 2 * 2 * Pow(2, 1)
2 * 2 * 2 * 2 * 2 * Pow(2, 0)
2 * 2 * 2 * 2 * 2 * 1
Отсюда результат 32.