c语言如何计算x的i次方
时间: 2024-10-22 09:21:38 浏览: 20
在C语言中,可以使用循环或者递归来计算一个数x的i次方。这里提供两种常见方法:
1. **循环法** (当i不是很大时效率较高):
```c
#include <stdio.h>
double power(double x, int i)
{
double result = 1;
while (i > 0)
{
if (i % 2 == 1) // 如果i是奇数
result *= x;
x *= x; // x自乘,相当于x的偶数次方
i /= 2; // i除以2,减少一半的迭代次数
}
return result;
}
int main()
{
double x, i;
printf("请输入底数x和指数i:");
scanf("%lf %d", &x, &i);
printf("结果是:%lf\n", power(x, i));
return 0;
}
```
2. **递归法** (一般用于教学,效率较低):
```c
#include <stdio.h>
double power(double x, int i)
{
if (i == 0) // 基本情况,0次幂等于1
return 1;
else if (i > 0) // 递归情况,偶数次幂递归处理,奇数次幂乘以原数
return x * power(x, i - 1);
else // i为负数的情况
return 1 / power(x, -i); // 注意此处需要防止分母为零
}
// ... (main函数同上)
```
阅读全文