c语言递归实现指数函数
时间: 2023-08-24 07:23:28 浏览: 156
C语言实现递归算法
下面是使用递归实现指数函数的C语言代码:
```c
#include <stdio.h>
double power(double x, int n){
if(n == 0){
return 1;
}
if(n < 0){
return 1 / power(x, -n);
}
double half = power(x, n / 2);
if(n % 2 == 0){
return half * half;
}else{
return half * half * x;
}
}
int main(){
double x = 2.0;
int n = 5;
double result = power(x, n);
printf("%lf to the power of %d is: %lf\n", x, n, result);
return 0;
}
```
在这个代码中,我们定义了一个函数 `power`,它接受两个参数:一个是底数 `x`,另一个是指数 `n`。
在函数中,我们首先判断 `n` 是否等于0,如果是,返回1。然后判断 `n` 是否小于0,如果是,返回1除以 `x` 的 `-n` 次方。接下来,我们使用递归调用 `power` 函数来计算 `x` 的 `n/2` 次方,将结果存储在变量 `half` 中。如果 `n` 是偶数,我们返回 `half` 的平方;否则,我们返回 `half` 的平方乘以 `x`。
在 `main` 函数中,我们定义了底数和指数,并调用 `power` 函数进行计算。最后,我们输出计算结果。
阅读全文