(剑指Offer)面试题11:数值的整数次方
题目:
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
思路:
看题目似乎很简单,循环相乘不就行了吗?不是的。
需要考虑几个问题:
1、exponent为0或者负数;
2、base为0且exponent为负数,其中判断base是否为0,需要考虑base为double类型;
3、高效的计算方法:分治;
代码:
#include <iostream>
#include <stdlib.h> using namespace std; bool equal(double num1,double num2){
if(abs(num1-num2)<0.0000001)
return true;
else
return false;
} double PowerWithUnsignedExponent(double base,unsigned int absExponent){
if(absExponent==0)
return 1;
if(absExponent==1)
return base; double result=PowerWithUnsignedExponent(base,absExponent>>1);
result=result*result;
if((absExponent&0x1)==1)
result=result*base; return result;
} double Power(double base,int exponent){
unsigned int absExponent=(unsigned int)exponent;
if(exponent<0)
absExponent=(unsigned int)(-exponent);
double result=PowerWithUnsignedExponent(base,absExponent); if(exponent<0)
result=1.0/result;
return result;
} int main()
{
cout<<Power(2,-3)<<endl;
cout<<Power(0,-1)<<endl;
cout<<Power(5,0)<<endl;
return 0;
}
在线测试OJ:
http://www.nowcoder.com/books/coding-interviews/1a834e5e3e1a4b7ba251417554e07c00?rp=1
AC代码:
class Solution {
public:
double Power(double base, int exp) {
int exponent=exp>0?exp:(-exp);
double p,result;
if(exponent==0)
return 1;
if(exponent==1)
return base;
p=Power(base,exponent>>1);
result=p*p;
if(exponent&0x1)
result=p*p*base;
if(abs(result-0.0)<0.00000001)
return result;
return exp>0?result:(1/result);
}
};
(剑指Offer)面试题11:数值的整数次方的更多相关文章
- 剑指Offer:面试题11——数值的整数次方(java实现)
题目描述: 实现函数double Power(double base, int exponent),求base的exponent次方,不得使用库函数,同时不需要考虑大数问题 思路:本题的重点考察内容是 ...
- 剑指offer_面试题11 数值的整数次方_考察代码的完整性
测试通过代码: package t0825; public class Power { public static void main(String[] args){ System.out.print ...
- 剑指Offer - 九度1514 - 数值的整数次方
剑指Offer - 九度1514 - 数值的整数次方2013-11-30 00:49 题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponen ...
- 剑指offer(12)数值的整数次方
题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 题目分析 这道题用传统的方法也可以做,只不过效率太低,这里我们用到快速幂的方法 ...
- 剑指offer十二之数值的整数次方
一.题目 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 二.思路 1.传统方法计算,时间复杂度O(n) 2.递归方式计算,时间复杂度O ...
- 【剑指Offer】12、数值的整数次方
题目描述: 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 解题思路: 本题看似比较简单,是一个简单的指数运算,但需要完 ...
- 剑指offer编程题Java实现——面试题11数值的整数次方
题目: 实现函数double power(double base,int exponent),求base的exponent次方.不得使用库函数,同时不需要考虑大数问题. 解题思路:最一般的方法实现数值 ...
- 剑指offer-面试题11.数值的整数次方
题目:实现函数double Power(double base,int exponent),求base的 exponent次方.不得使用库函数,同时不需要考虑大数的问题. 这道题看似很简单: 然而需要 ...
- 剑指offer 面试题43. 1~n整数中1出现的次数
leetcode上也见过一样的题,当时不会做 看了一下解法是纯数学解法就没看,结果剑指offer上也出现了这道题,那还是认真看下吧 对于数字abcde,如果第一位是1,比如12345,即计算f(123 ...
- 剑指offer——面试题11:旋转数组的最小数字
#include"iostream" using namespace std; int GetMinNumber(int *data,int len) { ,right=len-, ...
随机推荐
- java泛型理解。代码更明了。
泛型数据java基础,但真正理解需要悉心品尝.毕竟在工作中用到的是在是太多了. 不要以为new ArrayList<>这就是泛型,这只能属于会使用. 在工作中,相对于现有的项目源码的数据库 ...
- cogs——2478. [HZOI 2016]简单的最近公共祖先
2478. [HZOI 2016]简单的最近公共祖先 ★☆ 输入文件:easy_LCA.in 输出文件:easy_LCA.out 简单对比时间限制:2 s 内存限制:128 MB [题 ...
- Selenium模拟登陆简书
from selenium import webdriver from selenium.webdriver import ActionChains from selenium.webdriver.c ...
- bzoj 3757 树上莫队
感谢以下文章作者: http://blog.csdn.net/kuribohg/article/details/41458639 http://vfleaking.blog.163.com/blog/ ...
- 快速幂 cojs 1130. 取余运算
cojs 1130. 取余运算 ★ 输入文件:dmod.in 输出文件:dmod.out 简单对比时间限制:10 s 内存限制:128 MB [题目描述] 输入b,p,k的值,求b^p ...
- [转]Activity详解 Intent显式跳转和隐式跳转
Activity 生命周期 显式 Intent 调用 1 //创建一个显式的 Intent 对象(方法一:在构造函数中指定) 2 Inte ...
- Codeforces Round #262 (Div. 2) E. Roland and Rose 暴力
E. Roland and Rose Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset/pro ...
- Google Code Jam Africa 2010 Qualification Round Problem A. Store Credit
Google Code Jam Qualification Round Africa 2010 Problem A. Store Credit https://code.google.com/code ...
- React Native中树 TreeView 实现(2)
接上文,剩下的展示工作是重中之重,首先确定节点的布局草稿——也就是如何render item: 在此之前还有一个重要的问题就是选择何种组件盛放展示子结点,一般有如下两种: 使用scrollview加载 ...
- Use two picogate devices for bidirectional level-shifting
In new mixed-voltage systems, it is often necessary to level-shift a control signal from a high leve ...