前言
题目要求:使用C语言写一个函数,能够使用函数递归实现计算n的k次方,包括负数次方。
题目分析:
要求使用递归,先求出递归公式,假设我们的函数是
myPow(int n , int k)
那么n的k次方使用递归计算应该是:
n^k = n x myPow(n , k-1) ------k>0时
n^k = 1 -----------------------------k=0时
n^k = 1.0/ myPow(n , -k) -------k<0时
提示:以下是本篇文章正文内容,下面案例可供参考
代码示例
代码如下(示例):
//5.递归实现n的k次方
double myPow(int n, int k)
{
double val = 1;
if (k > 0)
{
val = n * myPow(n, --k);
}
else if (0 == k)
{
val = 1;
}
else val = 1.00 / myPow(n, -k);//负数次方
return val;
}
int main()
{
int n = 0;
int k = 0;
double val = 0;
scanf("%d%d", &n, &k);
val = myPow(n, k);
printf("%d的%d次方 = %lf\n", n, k, val);
return 0;
}
实现效果