用C语言编写函数求x的y次方
时间: 2023-06-16 10:05:26 浏览: 773
可以使用循环来实现求x的y次方的函数,代码如下:
```c
#include <stdio.h>
double power(double x, int y) {
double result = 1.0;
int i;
for (i = 0; i < y; i++) {
result *= x;
}
return result;
}
int main() {
double x = 2.0;
int y = 3;
double result = power(x, y);
printf("%.2f^%d = %.2f\n", x, y, result);
return 0;
}
```
在上面的代码中,我们定义了一个`power`函数,它接受两个参数,分别是底数x和指数y。在函数中,我们使用循环来计算x的y次方,最终返回结果。在`main`函数中,我们定义了x和y的值,然后调用`power`函数来计算x的y次方,并打印结果。
相关问题
c语言编写求x的n次方的递归函数
以下是求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次方, 并调用此函数求2的5次方。
以下是用C语言编写递归函数求x的n次方的代码:
```c
#include <stdio.h>
double power(double x, int n) {
if (n == 0) {
return 1;
} else if (n % 2 == 0) {
double y = power(x, n / 2);
return y * y;
} else {
double y = power(x, (n - 1) / 2);
return x * y * y;
}
}
int main() {
double result = power(2, 5);
printf("2的5次方等于%.0f\n", result);
return 0;
}
```
在这个递归函数中,如果n等于0,返回1;如果n是偶数,返回x的n/2次方的平方;如果n是奇数,返回x乘以x的(n-1)/2次方的平方。这个函数的时间复杂度是O(log n),因为每次递归都将n减半,所以最多需要递归log n次。
在main函数中,我们调用了power函数,求2的5次方,得到结果32。
阅读全文