剑指offer—数值的整数次方
2017-12-06 17:17
225 查看
题目描述
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
本题主要考察对所有示例考察的全面与否,不需要考虑大树问题,在这里注意的是exponent为负数的情况,以及base为0,exponent为负数的情况,把这些意外情况考虑过后,接下来需要注意的是程序的书写,一个好的程序是尽可能提高效率的,在这里,求一个数的32次方,连成32次相对来说没有求2的平方,4 的平方,16的平方效率高,因此采用递归实现这种想法,其次在书写程序的过程中注意,位运算的效率高于一般的乘除和求余
给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。
public class Solution { public double Power(double base, int exponent) { if(base==0.0) return 0; if(exponent==0) return 1; int sign=1; if(exponent<0){ exponent = Math.abs(exponent); sign=-1; } double result = powerCore(base,exponent); if((exponent&1)==1) result = result*base; return (sign==1) ? result : 1/result; } private double powerCore(double base, int exponent){ if(exponent==0) return 1; if(exponent==1) return base; double res = powerCore(base,exponent>>1); res = res*res; return res; } }
本题主要考察对所有示例考察的全面与否,不需要考虑大树问题,在这里注意的是exponent为负数的情况,以及base为0,exponent为负数的情况,把这些意外情况考虑过后,接下来需要注意的是程序的书写,一个好的程序是尽可能提高效率的,在这里,求一个数的32次方,连成32次相对来说没有求2的平方,4 的平方,16的平方效率高,因此采用递归实现这种想法,其次在书写程序的过程中注意,位运算的效率高于一般的乘除和求余
相关文章推荐
- 牛客网-剑指offer-12-数值的整数次方
- 剑指offer--11.数值的整数次方
- (3)剑指Offer之数值的整数次方和调整数组元素顺序
- 剑指offer之面试题11数值的整数次方
- 牛客网 剑指offer-数值的整数次方
- 【剑指offer】数值的整数次方
- 剑指offer面试题[11]-数值的正整数次方
- 剑指offer---数值的整数次方(11)
- 剑指Offer 11 数值的整数次方
- 【剑指offer】数值的整数次方-Java
- [剑指offer][面试题11]数值的整数次方
- 牛客网习题剑指offer之数值的整数次方
- 剑指offer_数值的整数次方
- 剑指Offer面试题11(Java版):数值的整数次方
- 剑指offer之数值的整数次方
- 剑指offer--面试题16:数值的整数次方
- 剑指Offer面试题:10.数值的整数次方
- 【剑指Offer学习】【面试题11 :数值的整数次方】
- 剑指offer-算法题练习:part12 数值的整数次方
- 剑指offer 面试题11 数值的整数次方