编写求x的n次方的递归函数,在主函数调用并输出。C语言
时间: 2023-06-02 19:04:52 浏览: 89
好的,我可以帮你编写一个求x的n次方的递归函数,在主函数调用并输出。以下是代码:
```
#include <stdio.h>
double power(double x, int n) {
if (n == 0) {
return 1;
} else {
return x * power(x, n - 1);
}
}
int main() {
double x;
int n;
printf("请输入一个实数x:");
scanf("%lf", &x);
printf("请输入一个整数n:");
scanf("%d", &n);
printf("%lf的%d次方为%lf", x, n, power(x, n));
return 0;
}
```
你可以把这段代码复制到你的编辑器中,然后运行它,输入x和n,就可以求出x的n次方了。如果你有其他问题,欢迎随时问我。
相关问题
C语言:编写递归函数求x的n次方, 并调用此函数求2的5次方。
好的,这是一个关于 C 语言的编程问题。可以使用递归算法来实现求 x 的 n 次方的功能。以下是一个示例代码:
```
#include <stdio.h>
double power(double x, int n)
{
if (n == 0)
{
return 1.0;
}
else if (n == 1)
{
return x;
}
else
{
double t = power(x, n/2);
if (n%2 == 0)
{
return t*t;
}
else
{
return t*t*x;
}
}
}
int main()
{
double result = power(2.0, 5);
printf("2^5 = %f\n", result);
return 0;
}
```
输出结果为:
```
2^5 = 32.000000
```
用函数的递归调用求a的n次方。C语言
可以使用以下递归函数来计算 a 的 n 次方:
```c
double power(double a, int n) {
if (n == 0) return 1;
if (n == 1) return a;
if (n < 0) return 1 / power(a, -n);
double half = power(a, n / 2);
if (n % 2 == 0) return half * half;
else return half * half * a;
}
```
这个函数会根据指数的正负和奇偶性来进行递归计算,如果指数为 0,返回 1;如果指数为 1,返回底数;如果指数为负数,返回 1 除以正数幂的结果;否则,将指数拆成两个相等的部分,分别计算后再相乘,如果指数为奇数,则还需要额外乘以一个底数。