zoukankan      html  css  js  c++  java
  • 剑指offer之 数值的整数次方

    问题描述:实现函数double power(double base,int exponent),求base的exponent次方。不能使用库函数,同时不需要考虑大数问题。

    package Problem11;
    
    public class Power {
        /*
         * 问题描述: 实现函数double power(double base,int exponent),求base的exponent
         * 次方。不能使用库函数,同时不需要考虑大数问题。
         */
    
        /**
         * @param args
         */
        public double power(double base, int exponet) throws Exception {
            double result = 0.0;
            if (equals(base, 0) && (exponet < 0)) {
                throw new Exception("0的负数次幂无意义");
            }
            if (exponet == 0) {
                return 1.0;
            }
            if (exponet < 0) {
                result = powerWithUnsignedExponent(base, -exponet);
            } else {
                result = powerWithUnsignedExponent(base, exponet);
            }
            return result;
        }
    
        private double powerWithUnsignedExponent(double base, int exponet) {
            double result = 1.0;
            for (int i = 1; i <= exponet; i++) {
                result = result * base;
            }
            return result;
        }
    
        // 由于计算机中表示小数都有误差,不能用等号判断两个小数是否相等。如果两个小数的差的绝对值很小
        // 我们就可以认为它们是相等的
        private boolean equals(double number1, int number2) {
            if ((number1 - number2 > -0.00000001)
                    && (number1 - number2) < 0.00000001) {
                return true;
            }
            return false;
        }
    

      

  • 相关阅读:
    搭建 mariadb 数据库主从同步
    MySQL--MVCC
    剑指 Offer 07. 重建二叉树
    剑指 Offer 06. 从尾到头打印链表
    MySQL--数据库范式
    剑指 Offer 05. 替换空格
    剑指 Offer 04. 二维数组中的查找
    剑指offer_03_数组中重复的数字(Java)
    Redis
    MySQL--SQL执行过程
  • 原文地址:https://www.cnblogs.com/toov5/p/7656552.html
Copyright © 2011-2022 走看看