面试题 11:数值的整数次方
2017-06-27 15:33
344 查看
一. 题目
实现函数double Power(double base,int exponent),求base 的exponent 次方.不得使用库函数,同时不需要考虑大数问题.
代码请到我的代码库中下载 Point2Offer
二. 代码
有不妥当之处,麻烦告知:D
实现函数double Power(double base,int exponent),求base 的exponent 次方.不得使用库函数,同时不需要考虑大数问题.
代码请到我的代码库中下载 Point2Offer
二. 代码
package ween_2; /**难度系数:*** * 剑指offer: 数值的整数次方 * 方法:考虑指数为负和底数为0 * 测试用例:功能测试(指数为正,指数为负,指数为0) * 特殊输入测试(底数为0) * @author dingding * Date:2017-6-22 17:00 * Declaration: All Rights Reserved! */ public class No11 { private static boolean invalidInput = false; public static void main(String[] args) { test1(); test2(); test3(); test4(); } //计算 private static double power(double base,int exponent){ invalidInput = false; if (equal(base,0.0) && exponent<0) { invalidInput = true; return 0.0; } int absExponent = exponent; if (exponent<0) { absExponent = -exponent; } double result = powerWithAbsExponent(base,absExponent); if (exponent<0) { result = 1.0/result; } return result; } //计算次方(使用递归方法,效率更高) private static double powerWithAbsExponent(double base, int absExponent) { if (absExponent==0) { return 1; } if (absExponent==1) { return base; } double result = powerWithAbsExponent(base, absExponent>>1); result *=result; if ((absExponent&1) == 1) { result*=base; } // for (int i=1;i<=absExponent;i++){ // result*=base; // } return result; } //判断是否等于0 private static boolean equal(double a, double b) { if ((a-b>-0.0000001)&&(a-b<0.0000001)) { return true; }else { return false; } } private static void test1() { double result = power(2, 4); System.out.println(result); } private static void test2() { double result = power(2, -3); System.out.println(result); } private static void test3() { double result = power(0, -1); System.out.println(result); } private static void test4() { double result = power(-2, 4); System.out.println(result); } }
有不妥当之处,麻烦告知:D
相关文章推荐
- 数值的整数次方(剑指offer面试题11)
- C++剑指offer_面试题11_数值的整数次方(*)
- 剑指Offer面试题11数值的整数次方
- 面试题11:数值的整数次方
- 剑指offer----面试题11:数值的整数次方
- 剑指offer 面试题11 数值的整数次方
- 【面试题11】数值的整数次方
- 面试题11:数值的整数次方
- 剑指offer面试题11 数值的整数次方 java实现
- 剑指offer-面试题11:数值的整数次方
- 剑指Offer--面试题11 数值的整数次方
- 剑指Offer面试题11(Java版):数值的整数次方
- 《剑指Offer》面试题11:数值的整数次方
- 面试题11:数值的整数次方
- 面试题11-数值的整数次方
- 剑指offer面试题11 数值的整数次方的Java代码实现
- 【剑指Offer】面试题11:数值的整数次方
- 面试题11:数值的整数次方
- 剑指offer——面试题11:数值的整数次方
- 《剑指offer》(面试题11):数值的整数次方