1.原理图示
上面的图基本说明了原理,下面结合源码理解:
2.源码
#include<stdio.h>
double minepow(int n,int k)
{
if (k == 0)
{
return 1;
}
else if (k > 0)
{
return n * minepow(n, k - 1);
}
else
{
return 1 / (minepow(n, -k));
}
}
int main()
{
int n = 0;
int k = 0;
scanf("%d %d", &n, &k);
double ret = minepow(n, k);
printf("%lf", ret);
return 0;
}
这里类型是double,是因为指数为负的时候,打印的是小数