double power(double a, int64_t n){
if (n < 0){
if (a == 0){
// throw exception....
return 0.0
}
return 1.0 / power(a, -n)
}
double res = 1, tmp = a;
while (n) {
if (n & 1) {
res *= tmp;
}
n >>= 1;
tmp *= tmp;
}
return res;
}
本作品採用《CC 協議》,轉載必須註明作者和本文連結