需要一种更好的方法来编写电源功能

时间:2017-04-25 14:07:32

标签: c++ function pow

我有这个代码用于我创建的幂函数,我被告知有办法将两个for循环组合(一个用于正数,一个用于负指数)并使用条件运算符

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;
}

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

2 个答案:

答案 0 :(得分:1)

这个怎么样?

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;
}

答案 1 :(得分:0)

你可以得到exponent的绝对值来循环,然后使用条件运算符在循环中进行操作:

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