这次通过递归实现n的K次方,需要注意的一个点是返回值的类型为double,因为k小于0时返回值为复数,而不能简单的设为int
#include<stdio.h>
double jc(int n, int k)//函数的返回值为复数,因而为double类型
{ //三种情况
if (k < 0)
{
return (1.0 / jc(n, -k));
}
else if (k == 0)
{
return 1;//
}
else
return n * jc(n, k - 1);
}
int main()
{
int n = 0;
int k = 0;
scanf_s("%d %d", &n, &k);
double s=jc(n, k);//当k<0时,结果为小数,返回值为复数
printf("%lf", s);
return 0;
}