即时通讯尝试制作自己的战队,但结果却是错误的
我得到:2 ^ 3.3 = 16,这是错误的......为什么?
#include <iostream>
using namespace std;
double new_pow(double base, double power){
double result = 1;
for(int i = 0; i <= power; i++) {
result *= base;
}
return result;
}
int main (int argc, char * const argv[]) {
std::cout << new_pow(2,3.3) << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
请帮我找一下这个bug
错误是你的循环运行4次,因为4次迭代不会超过3.3次.这就是浮点指数用对数实现的原因,而不是重复乘法.
| 归档时间: |
|
| 查看次数: |
3121 次 |
| 最近记录: |