Основная идея заключается в том,
Когда n четное число, a^n = a^n/2 × a^n/2.
Когда n — нечетное число, a^n = a^(n-1)/2 × a^(n-1)/2 × a
Код выглядит следующим образом:
Скопируйте код кода следующим образом:
публичный класс Power {
public static void main(String[] args) {
System.out.println(power(5.5,5));
}
частная статическая двойная степень (двойная база, показатель целого числа) {
если (показатель == 0)
возврат 1;
если (показатель == 1)
возвратная база;
двойной результат = мощность (основание, показатель степени >> 1);
результат *= результат;
если ((показатель & 0x1) == 1)
результат *= база;
вернуть результат;
}
}
В коде также используется операция сдвига вправо для замены деления на 2 и побитовая операция И для замены остатка для определения четности, что делает алгоритм намного более эффективным.