递归实现n的k次方,详细说明

这次通过递归实现n的K次方,需要注意的一个点是返回值的类型为double,因为k小于0时返回值为复数,而不能简单的设为int

#include
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;
    }

递归实现n的k次方,详细说明_第1张图片

 

你可能感兴趣的:(p2p,c语言,c++)