C语言实现x的n次方
时间: 2024-11-25 15:11:58 浏览: 26
在C语言中,你可以通过循环或者递归来实现求一个数x的n次方。这里提供两种常见方法:
1. **循环法** (适用于整数n)
```c
#include <stdio.h>
long long power(int x, int n) {
long long result = 1;
for (int i = 0; i < n; ++i) {
result *= x;
}
return result;
}
int main() {
int base, exponent;
printf("请输入底数x和指数n:");
scanf("%d %d", &base, &exponent);
printf("%d 的 %d 次方是 %lld\n", base, exponent, power(base, exponent));
return 0;
}
```
2. **递归法** (通用于所有数值,但效率较低,因为有函数调用开销)
```c
#include <stdio.h>
double power(double x, unsigned int n) {
if (n == 0) {
return 1.0;
} else if (n % 2 == 0) {
double temp = power(x, n / 2);
return temp * temp;
} else {
return x * power(x, n - 1);
}
}
int main() {
double base, exponent;
printf("请输入底数x和指数n:");
scanf("%lf %u", &base, &exponent);
printf("%.2f 的 %u 次方是 %.2f\n", base, exponent, power(base, exponent));
return 0;
}
```
请注意,对于大整数,循环法更为高效。同时,递归版本不适用于浮点数,因为它可能存在精度损失。
阅读全文