c语言怎么求一个数的次方
时间: 2024-09-23 19:02:56 浏览: 32
C语言求X的n次方.docx
在C语言中,求一个数的次方可以使用循环或者递归的方式实现。这里提供两种常见方法:
1. **循环法(迭代法)**:
```c
#include <stdio.h>
double power(double base, int exponent) {
double result = 1.0;
for (int i = 0; i < exponent; ++i) {
result *= base;
}
return result;
}
int main() {
double num;
int exp;
printf("请输入底数和指数:");
scanf("%lf %d", &num, &exp);
printf("%.2f 的 %d 次方是 %.2f\n", num, exp, power(num, exp));
return 0;
}
```
在这个例子中,`power()`函数通过乘法运算逐次将结果乘以`base`,直到达到指定的`exponent`。
2. **递归法**:
虽然不是最高效的选择,递归也可以实现,但是效率较低且可能会导致栈溢出对于大数值:
```c
#include <stdio.h>
#include <math.h> // 使用数学库中的pow避免精度问题
double power_recursive(double base, int exponent) {
if (exponent == 0)
return 1.0;
else if (exponent > 0)
return base * power_recursive(base, exponent - 1);
else if (exponent < 0)
return 1 / power_recursive(base, -exponent); // 对负指数取倒数
}
// 使用递归版本
int main() {
// ...
printf("%.2f 的 %d 次方是 %.2f\n", num, exp, power_recursive(num, exp));
return 0;
}
```
阅读全文