二進位制方式解決 power 問題

RichardHou發表於2020-05-17
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 協議》,轉載必須註明作者和本文連結

相關文章