【Pow(x,n)】
题目:
Implement pow(x, n).
代码:
class Solution {
public:
double myPow(double x, int n)
{
double ret = Solution::positivePow(fabs(x), abs(n));
if ( n> )
{
if ( x< && n& )
{
return - * ret;
}
}
else
{
if ( x< && abs(n)& )
{
return - / ret;
}
return / ret;
}
return ret;
}
static double positivePow(double x, int n)
{
if ( n== ) return ;
if ( n== ) return x;
double v1 = Solution::positivePow(x, n/);
double v2 = n& ? x : ;
return v1 * v1 * v2;
}
};
tips:
1. 考察binary search的思想,把计算复杂度由O(n)降低为O(logn)
2. 有个细节就是判断奇数偶数的时候,用bit判断,效率能略高一些。其实自己对计算机内部怎么执行加减乘除的原理应该是学过,但是忘记了,回头复习下。
===========================================
第二次过这道题,参考了之前的思路,分类讨论细一些,一次AC了。
class Solution {
public:
double myPow(double x, int n)
{
double ret = ;
ret = Solution::pow(fabs(x), abs(n));
if ( x> )
{
if ( n>= )
{
return ret;
}
else
{
return / ret;
}
}
else
{
if ( n & )
{
if ( n> )
{
return -ret;
}
else
{
return - / ret;
}
}
else
{
if ( n> )
{
return ret;
}
else
{
return / ret;
}
}
}
}
static double pow(double x, int n)
{
if (n==) return ;
if (n==) return x;
double val = Solution::pow(x, n/);
double remain = n & ? x : ;
return val * val * remain;
}
};
=====================================
第三次过,代码简洁了一些。主要是把x为0单独处理一下。
class Solution {
public:
double myPow(double x, int n)
{
double ret = ;
if ( fabs(x-)<1e- ) return 0.0;
ret = Solution::pow(fabs(x), abs(n));
if (x>)
{
if ( n< )
{
ret = 1.0 / ret;
}
}
else
{
if ( n & )
{
ret = -ret;
}
if ( n< )
{
ret = 1.0 / ret;
}
}
return ret;
}
static double pow(double x, int n)
{
if (n==) return ;
if (n==) return x;
double val = Solution::pow(x, n/);
double remain = n & ? x : ;
return val * val * remain;
}
};
【Pow(x,n)】的更多相关文章
- 【夯实PHP基础】PHP数组,字符串,对象等基础面面观
本文地址 分享提纲 1.数组篇 2.字符创篇 3.函数篇 4.面向对象篇 5.其他篇 /*************************** 一.数组篇 Begin***************** ...
- 假如现在有一堆长度大于3小于9的电话号码,用座机呼叫,如果出现这样的号码【123和12345】那么12345将永远不会被拨出,因为拨到123的时候电话已经呼出了,试写一个函数输出所有不能被呼出的电话号码(java实现)
解题: 假如现在有一堆长度大于3小于9的电话号码,用座机呼叫,如果出现这样的号码[123和12345]那么12345将永远不会被拨出,因为拨到123的时候电话已经呼出了,试写一个函数输出所有不能被呼出 ...
- 【面试题043】n个骰子的点数
[面试题043]n个骰子的点数 题目: 把n个骰子扔在地上,所有骰子朝上一面的点数之和为s, 输入n,打印出s的所有可能的值出现的概率. n个骰子的总点数,最小为n,最大为6n,根据排列组 ...
- 【百度地图API】如何自定义地图图层?实例:制作麻点图(自定义图层+热区)
原文:[百度地图API]如何自定义地图图层?实例:制作麻点图(自定义图层+热区) 摘要:自定义地图图层的用途十分广泛.常见的应用,比如制作魔兽地图和清华校园地图(使用切图工具即可轻松实现).今天我们来 ...
- 【百度地图API】如何根据摩卡托坐标进行POI查询,和计算两点距离
原文:[百度地图API]如何根据摩卡托坐标进行POI查询,和计算两点距离 摘要: 百度地图API有两种坐标系,一种是百度经纬度,一种是摩卡托坐标系.在本章你将学会: 1.如何相互转换这两种坐标: 2. ...
- 【百度地图API】建立全国银行位置查询系统(二)——怎样为地图添加控件
原文:[百度地图API]建立全国银行位置查询系统(二)--怎样为地图添加控件 <摘要>你将在第二章中学会以下知识: 使用手写代码的利器——notepad++: 如何为地图添加控件——鱼骨. ...
- PHP常用函数归类【持续整理中......】
一.PHP基础语法 变量,常量 严格区分大小写,但内置结构或关键字无所谓(echo) 命名:不能以数字,空格,.来开头,但是可以有汉字,eg:$变量="aa"; ...
- 【Python】-NO.97.Note.2.Python -【Python 基本数据类型】
1.0.0 Summary Tittle:[Python]-NO.97.Note.2.Python -[Python 基本数据类型] Style:Python Series:Python Since: ...
- mysql学习【第4篇】:MySQL函数和编程
狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! mysql学习[第4篇]:MySQL函数 官方文档 : 官方文档 常用函数 分类: 数学函数 , ...
随机推荐
- Hyper-V 2016 配置管理系列(应用篇)
远程连接到Hyper-V HOST 为了日常运维管理操作,使用远程PowerShell工作.Windows 10上安装了RSAT(远程管理工具 ).然后安装了Hyper-V控制台: 在能够远程连接到H ...
- sql2012,返回数据多时不走索引
当数据达到一定值时,都会走表扫描旧版如SQL2005时就有计算选择性的比例为 满足条件的行数/总行数<=0.7181,会走索引,其它会走表扫描有兴趣可以自己去不同版本中去测试 Roy Wu(吴熹 ...
- COGS 1453. [USACO NOV]空牛栏
★★ 输入文件:empty.in 输出文件:empty.out 简单对比时间限制:1 s 内存限制:64 MB [题目描述] FJ建的新牛棚里有N(2<=N<=3,000, ...
- java核心技术 要点笔记1
第1章 1.java特性 简单性,java语法是一个C++语法的纯净版本. 面向对象,java将重点放在数据和对象的接口上.java与C++的主要不同点在于多继承,在java中实现多继承的机制是采用接 ...
- memcached for .net on windows
memcached for windowshttp://www.cnblogs.com/dudu/archive/2009/07/19/1526407.htmlhttp://www.cnblogs.c ...
- innobackupex备份脚本
#!/bin/bash # 10 23 * * * /bin/bash /data/script/backup.sh BDATE=`date +%Y%m%d%H%M%S`BPATH=/data/bac ...
- POJ 3181 Dollar Dayz(递推,两个long long)
题意:John有N美元,有价格为1~K的工具,可以买的个数不限,问1~K组合出N的方案数. f[i = 第i中工具][j = 花费为j] = 方案数. f[i][j] = sigma{ f[i-1][ ...
- C#条件运算符(?:)
一.C#条件运算符(?:) 条件运算符(?:),有时也称为三元操作符“?:”.它是根据布尔型表达式的值返回?后面的两个值中的一个.如果条件为True,则计算第一个表达式并以它的计算结果为准:如果条件为 ...
- ajax 的 promise
$.when().done().fail() $.when($.ajax("test1.html"),$.ajax("test2.html")).done(fu ...
- 自动化运维工具——ansible系列命令
ansible-galaxy 连接 https://galaxy.ansible.com 下载相应的roles,此网站是Ansible爱好者将日常使用较好的playbooks打包上传,其他人可以免费下 ...