Переполнение стека при использовании большого показателя для возведения в степень при возведении в квадрат - PullRequest
0 голосов
/ 11 октября 2019

Я пытаюсь вычислить очень большие числа «длинных» типов, используя рекурсивный алгоритм возведения в квадрат, как показано ниже. Я сталкиваюсь с ошибками переполнения стека при увеличении размера экспоненты, и я хочу выяснить, как я могу позволить этому циклу и не занимать так много места в стеке. Я хочу добиться этого без использования библиотеки Math, поэтому только в ванильном коде Java.

public long exp(long base, long exponent, long accum){
    if (power > 0) {
        return exp(base, exponent - 1, accum * base);
    } else {
        return accum;
    }
}
...