实验要求:编写(递归)函数getPower计算x的y次方,在同一个程序中针对整型和实型实现两个重载的函数:
int getPower(int x, int y) ; //整型形式,当y<0时,函数返回0,其它情况返回正确的结果。
double getPower(double x, int y); //实数形式,无论y为何值,函数都能返回正确的结果。
最后运行给定的主程序,调用编写的函数得到指定的输出结果。
怎么改能让这段代码中double getPower(double x, int y);的输出是10的-3次幂也就是0.001呢
#include <iostream>
#include <stdio.h>
using namespace std;
int getPower(int x, int y)//整型形式,当y<0时,函数返回0,其它情况返回正确的结果。
{
if (y < 0)
return 0;
else if (y == 0)
return 1;
else if (y == 1)
return x;
else
return x * getPower(x, y - 1);
}
double getPower(double x, int y)//实数形式,无论y为何值,函数都能返回正确的结果。
{
if (y < 0)
{
return 0;
}
if (y == 0)
{
return 1;
}
else
{
return x * getPower(x, y - 1);
}
}
int main(void)
{
int a= 10 ,m= 3 ;
double b = 10;
cout<<getPower(a,m)<<endl; //调用int getPower(int x, int y);
cout<<getPower(b,m)<<endl; //调用double getPower(double x, int y);
cout<<getPower(a,-m)<<endl; //调用int getPower(int x, int y);
cout<<getPower(b,-m)<<endl; //调用double getPower(double x, int y);
return 0;
}