递归函数求x的n次方

递归函数求x的n次方

img


测试输入2.3,5
预期输出64.363430

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
double power(double x,int n)
{
    double y;
    int    m;
    m = abs(n);
    if(m==0) y=1.0;
    else {
        y=power(x,m/2.0);
        y=y*y;
        if(m%2==1)
            y=y*x;
    }
    if(n<0)    y = 1/y;
    return y;
}
int main()
{
    double    a,x;
    int        b;
    scanf("%lf,%d",&a,&b);
    x = power(a,b);
    printf("%lf\n",x);
    return 0;
}