Код: Выделить всё
class Solution {
public:
double myPow(double x, int n) {
long long exp = n;
if (exp < 0) {
x = 1 / x;
exp = -exp;
}
return pow(x, exp);
}
double pow(double x, long long n) {
if (n == 0) return 1;
return x * pow(x, n - 1); // Recursive call
}
};
< /code>
Это хорошо работает для небольших значений n, но когда я запускаю его для больших значений, таких как < /p>
myPow(2.0, 1000000000)
Я попытался использовать длинный длинный, чтобы избежать целочисленного переполнения. < /p>
Я подозреваю, что слишком много рекурсивных вызовов могут быть проблемой.>
Подробнее здесь: https://stackoverflow.com/questions/796 ... -for-large