补全C程序,递归实现指数函数,输入实数x和正整数n(n>=1),用递归函数计算x,n的值。 #include<stdio.h> double fun(double x,int n) { } int main() { int n; double x,root; scanf("%lf%d",&x,&n); root=fun(x,n); printf("%.0f\n",root); return 0; }
时间: 2024-03-20 12:42:50 浏览: 84
C语言中利用递归的方式得到n!
5星 · 资源好评率100%
可以使用以下代码实现递归计算指数函数:
```c
#include<stdio.h>
double fun(double x,int n) {
if (n == 0) { // 当n为0时,返回1
return 1.0;
} else if (n % 2 == 0) { // 当n为偶数时,将x的n次方拆分为x的n/2次方的平方
double temp = fun(x, n/2);
return temp * temp;
} else { // 当n为奇数时,将x的n次方拆分为x的n/2次方的平方再乘以x
double temp = fun(x, (n-1)/2);
return temp * temp * x;
}
}
int main() {
int n;
double x,root;
scanf("%lf%d",&x,&n);
root=fun(x,n);
printf("%.0f\n",root);
return 0;
}
```
在递归函数中,当指数n为0时,返回1。否则,根据指数n的奇偶性,分别将x的n次方拆分为x的n/2次方的平方或者x的n/2次方的平方再乘以x,然后递归计算x的n/2次方,直到n为0。
阅读全文