C语言算法X的n次方(递归)
#include
double f(double x,int n); main()
{
double x;
int n;
printf("please input x & n:");
scanf("%lf,%d",&x,&n);
if(x==0)
{
if(n>0)
printf("\n\n0.000000\n\n");
else
printf("\n\nerror!\n\n");
}
else
{
if(x>0)
{
if(n==0)
printf("\n\n1.000000\n\n");
else
{
if(n>0)
printf("\n\n%0.6lf\n\n",f(x,n));
else
printf("\n\n%0.6lf\n\n",1/f(x,-n));
}
}
else
{
if(n==0)
printf("\n\n1.000000\n\n");
else
{
if(n>0)
printf("\n\n%0.6lf\n\n",f(x,n));
else
printf("\n\n%0.6lf\n\n",1/f(x,-n));
}
}
}
}
double f(double x,int n)
{
if(n==1) return x;
return f(x,n-1)*x; }