Binary Search:50. Pow(x, n)
来源:互联网 发布:mac打开隐藏文件命令 编辑:程序博客网 时间:2024/05/29 16:31
这道题让我们求x的n次方。
我们可以用递归来折半计算,每次把n缩小一半,这样n最终会缩小到0,任何数的0次方都为1,这时候我们再往回乘,如果此时n是偶数,直接把上次递归得到的值算个平方返回即可,如果是奇数,则还需要乘上个x的值。还有一点需要引起我们的注意的是n有可能为负数,对于n是负数的情况,我们可以先用其绝对值计算出一个结果再取其倒数即可。
class Solution {public: double myPow(double x, int n) { if(n < 0) return 1/helper(x, -n); else return helper(x, n); } double helper(double x, int n) { if(n == 0) return 1; if(n % 2 == 0){ double half = helper(x, n/2); return half * half; } else{ double half = helper(x, n/2); return x * half * half; } }};
阅读全文
0 0
- Binary Search:50. Pow(x, n)
- leetcode :Binary Search:Pow(x, n)(050)
- LeetCode 50 Pow(x, n)(Math、Binary Search)(*)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 50.Pow(x,n)
- 50. Pow(x, n)
- 50. Pow(x, n)
- 23种设计模式
- JavaScript基础 语句
- K近邻算法
- UDP全面分析
- 浮点数与字节数据转换详解
- Binary Search:50. Pow(x, n)
- Android Studio : emulator is already running
- spring带给我们什么
- jdbctemplate中的select中in查询
- c++基础之头文件及#include的用法
- 递归和分治——整数划分问题
- Servlet——Tomcat
- JavaScript基础 函数
- 面向对象SOLID原则简介