c语言求a的n次幂
时间: 2023-12-06 13:44:59 浏览: 79
可以使用循环或递归实现求a的n次幂。
循环实现:
```c
#include <stdio.h>
double power(double a, int n) {
double result = 1.0;
for (int i = 0; i < n; i++) {
result *= a;
}
return result;
}
int main() {
double a = 2.0;
int n = 3;
printf("%.2f的%d次幂是%.2f", a, n, power(a, n));
return 0;
}
```
递归实现:
```c
#include <stdio.h>
double power(double a, int n) {
if (n == 0) {
return 1.0;
} else if (n % 2 == 0) {
double temp = power(a, n / 2);
return temp * temp;
} else {
return a * power(a, n - 1);
}
}
int main() {
double a = 2.0;
int n = 3;
printf("%.2f的%d次幂是%.2f", a, n, power(a, n));
return 0;
}
```
其中,递归实现使用了一个优化技巧,当n为偶数时,可以通过递归计算a的n/2次幂,然后将结果平方得到a的n次幂,这样可以减少递归深度。
阅读全文