我有这个代码用于我创建的幂函数,我被告知有办法将两个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;
}
有关从哪里开始的任何建议?
答案 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
}