实现Pow(x, n)

实现 pow(x, n) ,即计算 x 的 n 次幂函数。

示例 1:

输入: 2.00000, 10
输出: 1024.00000

示例 2:

输入: 2.10000, 3
输出: 9.26100

示例 3:

输入: 2.00000, -2
输出: 0.25000
解释: 2-2 = 1/22 = 1/4 = 0.25

说明:

  • -100.0 < x < 100.0
  • n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] 。

解题思路

暴力for循环想必是会超时 就得用到快速幂 对 & 运算运用不熟悉怕错 索性用类似二分这种每次循环只要算一半

class Solution {
public:
double myPow(double x, int n) {
// 加入特判
if(n == 0 || x == 1) return 1;
if(x == 0) return 0;
double ans = 1; // 答案
bool flag = true; // 用以标记指数正负 true为正
flag = n > 0 ? true : false;
if(!flag) n = abs(n); // 标记完正负后 取绝对值计算
// 快速幂
while(n > 0)
{
// 只要计算一半
if(n % 2 > 0) ans *= x;
n /= 2;
x *= x;
}
return ans = flag ? ans : 1 / ans;
}
};

顺利双百

PS:每日一个面试被拒小技巧:直接return pow(x,n);

最新文章

  1. HTML字符实体(关于&amp;nbsp;&amp;gt;&amp;lt;等)
  2. Maven搭建 Spring环境
  3. E-R图的基础练习
  4. BaiduMap Search List
  5. BOM组件物料重复检查
  6. 交互设计师常用的web设计模式(转)
  7. PDF.NET框架操作——工具应用(一)
  8. WIN8重见开始菜单
  9. hdu 4685 简单匹配+Tarjan算法
  10. input+div 下拉选择框
  11. 魔法方法:算术运算 - 零基础入门学习Python042
  12. 设置批量商品优惠、如何修改ZenCart产品显示图片的大小
  13. 关于戴尔没有活动分区,遇到了“Windows安装程序无法将windows配置为在此计算机的硬件上运行”提示等
  14. Shell - 简明Shell编程
  15. linux文件查找及操作
  16. 安装docker及配置Android开发环境
  17. python全栈目录
  18. PHP之ThinkPHP框架(会话)
  19. C Looooops(poj2115+扩展欧几里德)
  20. 为什么我们做分布式使用Redis?

热门文章

  1. PHP hebrevc() 函数
  2. 性能分析(3)- 短时进程导致用户 CPU 使用率过高案例
  3. 学习使用CompletableFuture
  4. 【01python基础】
  5. 【NOI2018】归程 题解(kruskal重构树+最短路)
  6. 树状图展示终端目录内容-tree
  7. LinuX操作系统基础------&gt;初始并安装系统
  8. Spring学习之——手写Spring源码V2.0(实现IOC、D、MVC、AOP)
  9. Iconfont的代码使用
  10. 每日一道 LeetCode (9):实现 strStr()