目录
算法思路
要实现n的k次方,我们可以把它拆分成n×n的k-1次方,即Pow(n,k)=n*Pow(n,k-1)。但是有两种特殊情况,一种是k为0,则直接等于1;另一种是k小于0,则将其转化为1/n的-k次方。如下图所示:
具体代码
#include<stdio.h>
double Pow(int n, int k)
{
if (k > 0)
return n * Pow(n, k - 1);
else if (k == 0)
return 1;
else
return 1.0 / Pow(n, -k);
}
int main()
{
int n = 0;
int k = 0;
scanf("%d%d", &n, &k);
double ret = Pow(n, k);
printf("%lf\n", ret);
return 0;
}
运行结果