數值的整數次方(快速冪)
阿新 • • 發佈:2018-12-12
題目描述
給定一個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。
注意題目也可能出更大的數,最好使用longlong來存,有時候也會將結果mod一個值
class Solution { public: double Power(double base, int exponent) { double res = 1.0; int judge = exponent; if(judge == 0) return 1.0; if(exponent < 0) exponent = (~exponent) + 1;//* -1 double curr = base; while(exponent != 0) { if((exponent & 1) == 1) res *= curr; curr *= curr; exponent >>= 1; } //當judge<0時,還需再次判斷res是否等於0,等於0則丟擲異常。這裡沒有做判斷 return judge < 0? 1 / res : res; } };