用递归的方式实现浮点型数据的乘方运算
输入:x和n,x为浮点型数据,n为整型数据(可为负数)输出:输出x的n次幂,结果保留两位小数
效果如下:
输入:2.0 -2
输出:0.25
#include <iostream>
#include <stdio.h>
#include<cmath>
using namespace std;
int main()
{
double x,n,result=1;
cin>>x>>n;
if(n==0)
{
printf("%.2f",1.00);
}
else if(x==0&&(n!=0))
{
printf("%.2f",0.00);
}
else if(n>0)
{
for(int i=1;i<=n;i++)
{
result=x*result;
}
printf("%.2f",result);
}
else if(n<0)
{
for(int i=1;i<=(-n);i++)
{
result=result*(x);
}
printf("%.2f",1/result);
}
}
或
#include <iostream>
#include <stdio.h>
using namespace std;
float power(float x,int n)
{
if(n==0)
return 1;
else if(n>0)
return x*power(x,n-1);
else
return power(x,n+1)/x;
}
int main()
{
float x;
int n;
cin>>x>>n;
if (x==0)
cout<<"0.00";
else
printf("%.2f",power(x,n));
return 0;
}