求m的n次方,这种问题看上去简单,但是我们需要考虑多种情况,由于没有说明给的int类型的整数n是大于0还是小于0,因此,我们需要考虑n大于0和小于0这两种情况。
#include
#include
using namespace std;
double power(double m, int n)
{
//double m1 = m;
double temp = m;
if(n == -1)
temp = 1 / temp;
if (n == 0)
temp = 1;
if (n == 1)
temp = m;
if(n >= 2)
{
for (int i = 2; i <= n; i++)
{
temp = temp * m;
//m1 = temp;
}
}
if (n < -1)
{
//n = abs(n);
n = -n;
for (int i = 2; i <= n; i++)
{
temp = temp * m;
}
temp = 1 / temp;
}
return temp;
}
int main()
{
double m, n;
while (cin >> m >> n)
{
cout << "power(" << m << ", " << n << "): " << power(m, n) << endl;
}
return 0;
}