15.Pow(x, n)
- Pow(x, n)
Total Accepted: 88351 Total Submissions: 317095 Difficulty: Medium
Implement pow(x, n).
思路:a.循环迭代求解(O(n)n次乘法运算)
仔细想想,做了很多重复工作
b.如何利用已经结论呢28=2∗2∗2....∗228=(24)∗ans(ans表示前面已经计算好的24)思路来了,二分,分奇偶讨论,复杂度为O(log(n))
Input:2.00000 -2147483648
Output:inf
Expected:0.00000
#define IMIN numeric_limits<int>::min()
class Solution {
public:
double myPow(double x, int n) {
int is_min=0;
if(n<0){
x=1/x;
if(n==IMIN){n=abs(n+1);is_min=1;}//处理负数绝对值越界,并标记
else n=abs(n);
}
if(n==0)return 1;
int sign=-1;
if(n%2==0)sign=0;//判断奇偶
else sign=1;
double left = myPow(x,n/2);//二分乘法
double res=0;
if(sign==0)res= left*left;
else res= left*left*x;
if(is_min)res = res*x;//为负数边界转为正数,少乘了一个
return res;
}
};
15.Pow(x, n)的更多相关文章
- JAVA Number与Math类
Number类: 当要用到数字的时候,我们除了使用内置数据类型byte,int,double等来声明,我们还把它声明为一个对象: 所有的包装类(Integer.Long.Byte.Double.Flo ...
- hdu4059The Boss on Mars 容斥原理
//求1到n之间与n互质的数的四次方的和 //segma(n^4) = (6n^5+15n^4+10n^3-n)/30 //对于(a/b)%mod能够转化为(a*inv(b))%mod //inv(b ...
- svm 中采用自动搜索参数的方式获得参数值
载时自http://blog.csdn.net/u011177305/article/details/46458801?locationNum=1 OpenCV中SVM类是提供了优化参数值功能的,下面 ...
- 谈谈Java基础数据类型
Java的基本数据类型 类型 意义 取值 boolean 布尔值 true或false byte 8位有符号整型 -128~127 short 16位有符号整型 -pow(2,15)~pow(2,15 ...
- C语言的本质(15)——C语言的函数接口入门
C语言的本质(15)--C语言的函数接口 函数的调用者和其实现者之间存在一个协议,在调用函数之前,调用者要为实现者提供某些条件,在函数返回时,实现者完成调用者需要的功能. 函数接口通过函数名,参数和返 ...
- 做一个牛XX的身份证号验证类(支持15位和18位)
原文:做一个牛XX的身份证号验证类(支持15位和18位) #region 是否合法的中国身份证号码 protected bool IsChineseID() { if (str.Length == 1 ...
- 实现pow(int x, int y),即x的y次方 ; 异或交换两个数;
问题1:实现pow(int x, int y) ,即x的y次方 x的y次方就是有y个x连续乘机,代码如下: #include <stdio.h> #include <stdlib.h ...
- python全栈开发 * 15知识点汇总 * 180621
#15 函数二 与 匿名函数1.dir() # 查看内置属性,将对象所有方法名放在另一个列表中.dic={"水果":"香蕉",'蔬菜':"土豆&quo ...
- Learning-Python【15】:内置函数
截止到Python版本3.6.2,一共为我们提供了68个内置函数.它们就是Python提供的直接可以拿来使用的所有函数. 这个表的顺序是按照首字母的排列顺序来的,都混乱的堆在一起.比如,oct和bin ...
随机推荐
- 2021.9.9考试总结[NOIP模拟50]
T1 第零题 神秘结论:从一个点满体力到另一个点的复活次数与倒过来相同. 于是预处理出每个点向上走第$2^i$个死亡点的位置,具体实现可以倍增或二分. 每次询问先从两个点同时向上倍增,都转到离$LCA ...
- ip_local_port_range 和 ip_local_reserved_ports
问题:启动应用程序时,发现网络端口被占用,原因是什么?如何避免? 原因:Linux 系统设置了随机使用的端口范围 echo "40000 60000" > /proc/. ...
- HDC2021:HMS Core分析服务,数智化营销闭环方案帮助开发者实现精益增长
10.22-10.24华为开发者大会2021(Together)在东莞如期举行.本次大会上,HMS Core华为分析服务作为多平台.跨设备的一站式数据分析平台以数据驱动业务智能决策为理念,带来了数智化 ...
- js点击事件 登录
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- 攻防世界 WEB 高手进阶区 csaw-ctf-2016-quals mfw Writeup
攻防世界 WEB 高手进阶区 csaw-ctf-2016-quals mfw Writeup 题目介绍 题目考点 PHP代码审计 git源码泄露 Writeup 进入题目,点击一番,发现可能出现git ...
- vue中main.js配置后端请求地址
Vue.config.productionTip = false; axios.defaults.baseURL = 'http://127.0.0.1:8003/';//后端开发环境地址 // ax ...
- vue项目部署到docker中
通过nginx镜像部署 vue项目npm run build打包成dist目录,有的打包会加上版本号 启动 docker 将dist目录通过xftp拷贝到linux服务器上,同目录下新建Dockerf ...
- redis客户端修改了key-value对之后有时会报MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist o...错误,不能持久化
解决方案,连接redis客户端 redis目录下:redis-cli -h 127.0.0.1 -p 6379-h后为redis服务器ip,-p后为端口号进入redis-client之后输入命令 co ...
- (四)DQL查询数据(最重点)
4.1 DQL Data Query Language 数据查询语言 1 所有的查询操作都用它 Select 2 简单的查询,复杂的查询它都能做 3 数据库中最核心的语言,最重要的语 ...
- Debug代码调试
Debug代码调试 第一步在代码左侧先点一个红点 第二步右键选择Debug运行 第三步点击Step Into按键分步进行 练习题: s2 = 'python python python python ...