力扣Leetcode 50. 实现Pow(x, n)
2024-09-02 07:18:40
实现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);
最新文章
- HTML字符实体(关于&;nbsp;&;gt;&;lt;等)
- Maven搭建 Spring环境
- E-R图的基础练习
- BaiduMap Search List
- BOM组件物料重复检查
- 交互设计师常用的web设计模式(转)
- PDF.NET框架操作——工具应用(一)
- WIN8重见开始菜单
- hdu 4685 简单匹配+Tarjan算法
- input+div 下拉选择框
- 魔法方法:算术运算 - 零基础入门学习Python042
- 设置批量商品优惠、如何修改ZenCart产品显示图片的大小
- 关于戴尔没有活动分区,遇到了“Windows安装程序无法将windows配置为在此计算机的硬件上运行”提示等
- Shell - 简明Shell编程
- linux文件查找及操作
- 安装docker及配置Android开发环境
- python全栈目录
- PHP之ThinkPHP框架(会话)
- C Looooops(poj2115+扩展欧几里德)
- 为什么我们做分布式使用Redis?
热门文章
- PHP hebrevc() 函数
- 性能分析(3)- 短时进程导致用户 CPU 使用率过高案例
- 学习使用CompletableFuture
- 【01python基础】
- 【NOI2018】归程 题解(kruskal重构树+最短路)
- 树状图展示终端目录内容-tree
- LinuX操作系统基础------>;初始并安装系统
- Spring学习之——手写Spring源码V2.0(实现IOC、D、MVC、AOP)
- Iconfont的代码使用
- 每日一道 LeetCode (9):实现 strStr()