c++语言求x的n次方函数
时间: 2023-05-20 12:07:16 浏览: 240
以下是一种简单的方式实现求x的n次方函数的 C 语言代码:
```
#include <stdio.h>
double pow(double x, int n) {
double res = 1;
int sign = n < 0 ? -1 : 1; //处理出 n 的符号
n = abs(n); //取 n 的绝对值
while (n > 0) {
if (n % 2 == 1)
res *= x;
x *= x;
n /= 2;
}
return sign == 1 ? res : 1 / res;
}
int main() {
double x = 2.0;
int n = 10;
printf("%.2lf 的 %d 次方为:%.5lf", x, n, pow(x, n));
return 0;
}
```
你可以将 x 和 n 的值修改为你想要求的任意值来测试该函数。
相关问题
c++递归函数求x的n次方
以下是递归函数求x的n次方的Python代码:
```python
def power(x, n):
if n == 0:
return 1
elif n % 2 == 0:
return power(x * x, n // 2)
else:
return x * power(x * x, (n - 1) // 2)
```
这个函数首先检查n是否为0,如果是,则返回1。否则,它检查n是否为偶数,如果是,则将x的平方的n/2次方作为结果递归调用power函数。如果n是奇数,则将x乘以x的平方的(n-1)/2次方作为结果递归调用power函数。这个算法的时间复杂度为O(log n)。
devc++编写x的n次方用fact函数
好的,需要注意的是x和n输入时需要进行判断,不能为负数。
以下是用fact函数计算x的n次方的代码示例:
```
#include <stdio.h>
int fact(int x, int n) {
if(n == 0) {
return 1;
} else {
return x * fact(x, n-1);
}
}
int main() {
int x, n;
printf("请输入x和n:\n");
scanf("%d%d", &x, &n);
if(x < 0 || n < 0) {
printf("x和n必须为非负整数!\n");
} else {
printf("%d的%d次方是:%d\n", x, n, fact(x, n));
}
return 0;
}
```
这段代码中的fact函数实现了递归求解x的n次方。在main函数中,我们先进行输入检查,然后输出结果。如果x或n为负数,则会提示用户输入非负整数。
阅读全文