数值的整数次方
来源:互联网 发布:mac上好用的翻墙软件 编辑:程序博客网 时间:2024/05/24 03:21
题目
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
思路
先简单处理一下指数:
如果指数为0或者1可以直接给出结果;
如果指数为负数,那么可以将指数取正来计算,并且将最后结果取倒数即可;
接下来着重处理一般情况(不考虑base为0,指数为负的情况,无意义),即指数为正:
设n的m次方表示为n^m,
如果m为偶数,那么n^m = (n ^ (m / 2)) ^ 2,即只要计算n的m/2次方再平方就可以了;
如果m为奇数,那么n^m = (n ^ (m / 2)) ^ 2 * n,即只要计算n的m/2次方再平方,然后再乘上n就可以了;
这样一直递归下去,可以在O(logn)的时间内得到结果。
参考代码
class Solution{public: double Power(double base, int exponent) { if (exponent == 0) return 1.0; if (exponent == 1) return base; bool reverse = false; if (exponent < 0) { exponent = -exponent; reverse = true; } double res = Power(base, exponent >> 1); res *= res; if (exponent & 1) { res *= base; } if (reverse) { res = 1.0 / res; } return res; }};
阅读全文
0 0
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- 数值的整数次方
- StyleBank: An Explicit Representation for Neural Image Style Transfer 论文理解
- Java多态--- 如何匹配的呢?
- 关于php如何在页面之间传递参数的问题
- 两个栈实现一个队列及相关类型题
- 【动态规划】qbxt精英班
- 数值的整数次方
- HDU 1846(Brave Game) 巴什博弈 Java
- 《STL源码剖析》-空间配置器(一)构造和析构
- hdu1166单点更新,区间求和
- 命令学习
- ArrayList(数组列表)
- Android 自定义 EditText 达到从右边输入的效果
- JSTL中<c:forEach ...>标签详解
- KMP算法深入理解