• 自己实现一个数的整数次方 11


    注意输入的判断,多写几个if语句判断是否满足输入数据的条件

       

    另外exp为负的时候,输入的base变为1.0/base而不是1/base

       

    所以返回值要设置为doublebase也要设为double

       

    另外要自己定义equal,而不能用==,要去判断两个数的差的绝对值是否在一定范围内

       

    package myPower11;

       

    public class MyPower11 {

    static boolean equal(double num1,double num2)

    {

    if((num1-num2>-0.0000001)&&num1-num2<0.0000001)

    {

    return true;

    }

    else

    {

    return false;

    }

    }

    static double myPower(double base, int exp) throws Exception {

    double result = 0;

    if (equal(base,0.0) && exp < 0) {

    throw new Exception("no sense");

    }

    if (equal(base,0.0) && exp >= 0) {

    return 0;

    }

    if (base!=0&&exp>=0) {

    result=powerCal(base, exp);

    return result;

    }

    if (base != 0 && exp < 0) {

    return powerCal(1.0 / base, -exp);

    }

    return result;

       

    }

       

    static double powerCal(double base, int exp) {

    double result = 1;

    if (base != 0 && exp >= 0) {

    for (int i = 0; i < exp; i++) {

    result *= base;

    }

       

    }

    return result;

       

    }

       

    public static void main(String[] args) throws Exception {

    // TODO Auto-generated method stub

    System.out.println(myPower(2, -3));

    }

       

    }

       

  • 相关阅读:
    设计模式(六)Prototype Pattern 原型模式
    设计模式(五)Builder Pattern建造者模式
    Linux安装软件
    日志技术及JUL入门
    IDEA推出新字体,极度舒适
    HDFS的API操作
    Apollo的灰度发布
    Apollo整合SpringBoot开发
    Apollo配置发布原理
    Apollo应用配置
  • 原文地址:https://www.cnblogs.com/keedor/p/4381296.html
Copyright © 2020-2023  润新知