c语言编写求x的n次方的递归函数
时间: 2024-02-13 11:05:53 浏览: 235
以下是求x的n次方的递归函数的C语言代码:
```c
double power(double x, int n) {
if (n == 0) {
return 1.0;
} else if (n < 0) {
return 1.0 / power(x, -n);
} else if (n % 2 == 0) {
double y = power(x, n / 2);
return y * y;
} else {
return x * power(x, n - 1);
}
}
```
该函数使用了递归的方式来求解x的n次方,其中当n为0时返回1,当n为负数时返回x的-n次方的倒数,当n为偶数时使用递归的方式求解x的n/2次方的平方,当n为奇数时使用递归的方式求解x的n-1次方并乘以x。
相关问题
用C语言编写求x的n次方的递归函数
以下是用C语言编写求x的n次方的递归函数的例子:
```c
#include <stdio.h>
#include <stdlib.h>
//递归解决x的n次方
int power(int x, int n){
if(n == 0){
return 1;
}
else{
return x * power(x, n-1);
}
}
int main(){
int x, n;
printf("请输入底数x和指数n:");
scanf("%d%d", &x, &n);
printf("%d的%d次方为:%d\n", x, n, power(x, n));
return 0;
}
```
c语言中x的n次方递归
以下是C语言中计算x的n次方的递归实现:
```c
#include <stdio.h>
double power(double x, int n) {
if (n == 0) {
return 1.0;
} else if (n < 0) {
return 1.0 / power(x, -n);
} else if (n % 2 == 0) {
double y = power(x, n / 2);
return y * y;
} else {
return x * power(x, n - 1);
}
}
int main() {
double x = 2.0;
int n = 10;
double result = power(x, n);
printf("%f^%d = %f\n", x, n, result);
return 0;
}
```
这段代码中,power函数使用了递归的方式计算了x的n次方。当n为0时,函数返回1;当n为负数时,函数返回1除以x的-n次方;当n为偶数时,函数将x的n次方转化为x的n/2次方的平方;当n为奇数时,函数将x的n次方转化为x的n-1次方乘以x。通过这些递归式的转化,power函数可以计算出x的任意次方。
阅读全文