p****3 发帖数: 448 | 1 double pow(double x, int n);
我只想到递归加缓存的解法
有没有bottom-up的解法(不用递归的) | b***i 发帖数: 3043 | 2 2进制n
【在 p****3 的大作中提到】 : double pow(double x, int n); : 我只想到递归加缓存的解法 : 有没有bottom-up的解法(不用递归的)
| p****3 发帖数: 448 | 3 但是n并不一定是2的power.
比如63
余下的部分还需要O(n)的运算量吧
【在 b***i 的大作中提到】 : 2进制n
| n*****s 发帖数: 6495 | | y****e 发帖数: 20 | 5 n看成二进制,从高位扫到低位,successive squaring, 遇1乘x
double r = 1;
for( int i = ( 1 << 30 ); i; i >>= 1 )
{
r *= r;
if( n & i ) r *= x;
}
return r; |
|