需要一种更好的方法来编写电源函数

Need a better way to write a power function

本文关键字:方法 函数 电源 更好 一种      更新时间:2023-10-16

我有此代码用于我创建的电源函数,并被告知有两个方法可以将两者结合起来以进行循环(一个用于阳性,一个用于负指数(并使用条件操作员

double myPow(double base, int exponent) {
    double result = 1;
    for (int i = 0; i < exponent; i++) {
        result *= base;
    }
    for (int i = 0; i > exponent; --i) {
        result /= base;
    }
    return result;
}

关于从哪里开始的任何建议?

怎么样?

double myPow(double base, int exponent) {
    double result = 1;
    if (exponent < 0) {
        exponent = -exponent;
        base = 1/base;
    }
    for (int i = 0; i < exponent; i++) {
        result *= base;
    }
    return result;
}

您可以获取指数循环的绝对值,然后使用条件运算符在环内进行操作:

double result = 1;
int absExp = std::abs(exponent);
for (int i = 0; i < absExp; i++) {
    exponent < 0 ? // division : // multiplication
}