我们知道C++中是有pow函数的,我们这次自己来写个,因为有这样的算法题目。
所需数学知识:
大致考虑正数,0,负数即可。n多个数相乘的问题。
1.简单For循环
这还不简单,马上写一个for循环:double pow(double x, int n){
int m = abs(n);
double result = 1;
for(int i = 0; i < m; ++i){
result *= x;
}
return n > 0 ? result : 1/result;
}
2.最慢的递归求解
受 1+2+3+4+5…+N的问题用递归求解思路影响,我们知道这里可以用一个非常慢的递归来求解。
double pow(double x, int n){
if(n == 0){
return 1;
}
if(n > 0 ){
return x * pow(x, n - 1);
}else{
return 1 / pow(x, -n);
}
}</
如果觉得《c语言一个数的n次方 Pow(x n) 求一个数的n次方》对你有帮助,请点赞、收藏,并留下你的观点哦!