用c语言递归设计一个函数用来计算B的n次方
时间: 2024-03-01 12:49:51 浏览: 97
文件filec中的内容为-C语言函数汇编
好的,我可以帮你设计一个用递归实现计算B的n次方的C函数。具体实现如下:
```c
#include <stdio.h>
double power(double b, int n) {
if (n == 0) {
return 1;
}
else if (n % 2 == 0) {
double temp = power(b, n / 2);
return temp * temp;
}
else {
double temp = power(b, (n - 1) / 2);
return temp * temp * b;
}
}
int main() {
double b;
int n;
printf("请输入底数B和指数n:");
scanf("%lf %d", &b, &n);
printf("%.2f的%d次方结果为:%.2f\n", b, n, power(b, n));
return 0;
}
```
这段代码中,`power`函数采用了分治的思想,当n=0时,返回1;当n为偶数时,将问题转化为计算B的n/2次方的平方;当n为奇数时,先计算B的(n-1)/2次方的平方,再乘上B。
在主函数中,用户输入底数B和指数n,并调用`power`函数计算B的n次方,并输出计算结果。
阅读全文