leetcod Pow(x, n)
题目:就是实现一个指数函数。
直接用一个while一直乘以n词肯定是会超时的。
自己写了用递归(而且是很挫的递归),测试了无数次,根据每个case去修改代码。终于可以AC了。不忍直视,自己写了好长,如下:
- class Solution {
- public:
- double pow(double x, int n) {
- int flag1 = , flag2 = ;
- if (n < )
- {
- flag1 = ;
- if (n > INT_MIN) n = -n;
- else
- {flag2 = ; n = -(n + );}
- }
- if (n == || x == )
- return ;
- if (x == )
- return ;
- int time = (int) (log(n)/log());
- double ans = x;
- int cnt = ;
- while(time--)
- {
- cnt <<= ;
- ans *= ans;
- }
- if(!flag2)
- {
- if (cnt == n)
- {
- if(flag1)
- return /ans;
- return ans;
- }
- else
- {
- if (flag1)
- return /(ans*pow(x, n - cnt));
- return ans*pow(x, n - cnt);
- }
- }
- else
- {
- if (cnt == n)
- {
- if (flag1)
- return /(ans*x);
- return ans*x;
- }
- else
- {
- if (flag1)
- return /(x*ans*pow(x, n-cnt));
- return x*ans*pow(x, n - cnt);
- }
- }
- }
- };
然后肯定要看看其他大神。用递归的,别人十几行就搞定了。
- double pow(double x, int n) {
- if (n == ) return 1.0;
- double half = pow(x, n/);
- if (n% == )
- {
- return half*half;
- }
- else if (n>)
- {
- return half*half*x;
- }
- else
- {
- return half/x*half;
- }
- }
以下有一个没有用递归的。
- public double pow(double x, int n) {
- if(n==)
- return 1.0;
- double res = 1.0;
- if(n<)
- {
- if(x>=1.0/Double.MAX_VALUE||x<=1.0/-Double.MAX_VALUE)
- x = 1.0/x;
- else
- return Double.MAX_VALUE;
- if(n==Integer.MIN_VALUE)
- {
- res *= x;
- n++;
- }
- }
- n = Math.abs(n);
- boolean isNeg = false;
- if(n%== && x<)
- {
- isNeg = true;
- }
- x = Math.abs(x);
- while(n>)
- {
- if((n&) == )
- {
- if(res>Double.MAX_VALUE/x)
- return Double.MAX_VALUE;
- res *= x;
- }
- x *= x;
- n = n>>;
- }
- return isNeg?-res:res;
- }
leetcod Pow(x, n)的更多相关文章
- 【探索】无形验证码 —— PoW 算力验证
先来思考一个问题:如何写一个能消耗对方时间的程序? 消耗时间还不简单,休眠一下就可以了: Sleep(1000) 这确实消耗了时间,但并没有消耗 CPU.如果对方开了变速齿轮,这瞬间就能完成. 不过要 ...
- [LeetCode] Super Pow 超级次方
Your task is to calculate ab mod 1337 where a is a positive integer and b is an extremely large posi ...
- [LeetCode] Pow(x, n) 求x的n次方
Implement pow(x, n). 这道题让我们求x的n次方,如果我们只是简单的用个for循环让x乘以自己n次的话,未免也把LeetCode上的想的太简单了,一句话形容图样图森破啊.OJ因超时无 ...
- Javascript四舍五入(Math.round()与Math.pow())
代码 Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ ...
- Pow(x, n)
Implement pow(x, n). public class Solution { public double pow(double x, int n) { //判断x是不是0 if(Math. ...
- leetcode pow(x,n)实现
题目描述: 自己实现pow(double x, int n)方法 实现思路: 考虑位运算.考虑n的二进制表示形式,以n=51(110011)为例,x^51 = x^1*x^2*x^16*x^32,因此 ...
- C语言pow函数编写
C语言pow函数编写 #include<stdio.h> double chaoba(double f,double q); //声明自定义函数 void main(void) { dou ...
- C语言中关于POW在不同状态下四舍五入的解决方法
这是今天作业中的一个代码: #include <stdio.h>#include<math.h>int main(){ printf("请输入一个整数:") ...
- Pow 算法
#include <iostream> using namespace std; template<class T, class Int> T Pow(T x, Int n) ...
随机推荐
- IOS 数据库管理系统(SQLite)
嵌入式数据库 SQLite嵌入式数据库的优势 1.支持事件,你并不需要配置,无需安装,不需要管理员 2.支持部分脂肪SQL92 3.完整的数据库被存储在磁盘上的文件的顶部,相同的数据库文件可以在不同机 ...
- 根据自己的需要,把别人开发好的东西搬过来,优化and重构,在优化的过程中,甚至也会弄出一套全新的东西(转)
赵海平在今年三月份来到阿里,听毕玄(他现任主管)说去年五六月份就跟赵海平聊上了.有人问:为啥 BAT 三大巨头,你看中了阿里巴巴?在今天现场达一千多人的分享中赵海平给出了回复:“因为百度和腾讯没找我呗 ...
- php用魔术方法__call实现类函数重载
因为php是弱类型语言,不喜欢c++通过改变函数返回相同的值键入的参数的数目和功能将过载!但在需求函数的实际发展可能过载.开发需求,我们能够通过魔术方法__call()来实现函数重载. class T ...
- 于ubuntu-kylin14.10下一个,无法使用apt-get具( libc6-i386 : 赖: libc6 (= 2.15-0ubuntu10.5) 但 2.19-0ubuntu6 一个已)
这篇文章有xhz1234(徐洪志)书写.转载请注明出处. http://blog.csdn.net/xhz1234/article/details/37044531 作者:徐洪志 背景:安装wine. ...
- 批处理命令行CMD启动停止重启IIS的命令
原文:批处理命令行CMD启动停止重启IIS的命令 启动IIS: net start iisadmin (IIS的整个服务) net start w3svc (WWW网页WEB服务) ...
- Oracle EBS WMS特征(一)
Oracle EBS WMS特征(一) (版权声明.我的原创或翻译的文章,如需转载,转载用于个人学习,转载请注明出处:否则,请与我联系,版权所有) Oracle WMS这是一个仓库管理,它是Oracl ...
- HR系统邮件审批功能总结
时至今日,来兰亭工作的第三个小任务算是暂时告一段落了.这个小任务是耗费时间最长的,因此在这里总结整理一下. 首先这个功能的出发点是方法领导进行手下员工的审批,包括加班申请,休假申请,和漏打卡申请.由于 ...
- thinkphp学习笔记4—眼花缭乱的配置
原文:thinkphp学习笔记4-眼花缭乱的配置 1.配置类别 ThinkPHP提供了灵活的全局配置功能,ThinkPHP会依次加载管理配置>项目配置>调试配置>分组配置>扩展 ...
- ubuntu 14.04 hadoop eclipse 0配置基本环境
动人的hadoop第二天.构造hadoop该环境还花了两天时间,在这里写自己配置的过程,我希望能帮助! 我将文中用到的全部资源都分享到了 这里,点开就能下载,不须要一个个的找啦! 当中有<Ha ...
- HBase加Solr
HBase加Solr 如何解决分布式系统数据事务一致性问题 (HBase加Solr) 摘要:对于所有的分布式系统,我想事务一致性问题是极其非常重要的问题,因为它直接影响到系统的可用性.本文以下所述所要 ...