Pow(x, n)
题目描述:
给定一个数x,求得其n次方的结果。
例子:
具体描述见LeetCode50
解题思路:
这一题主要注意的地方有:我们的n可能是负数,所以需要判断是否对x取倒数;其次是p可能非常的大需要比较大的数来保存。另外因为用到了移位的位算法,所以我们需要将p定义为无符号的数。而后对于下面的移位操作简单进行说明。假设我们要计算3的11次方的结果;二进制表示为1011。第一次末尾为1,所以将结果乘以3,然后移位,然后乘数进行乘积变为9;二次移位也是1,所以继续乘以9,这时候结果是3次方;而后x继续乘积就是4次方,但是移位结果为0;所以不进行乘积;继续乘方为8次方,末尾为1.所以结果为11次方。程序结束。
代码如下:
|
|