递归大总结之指数运算

来自剑指offer

#include<iostream>
using namespace std;
double power(int b, int e)
{
	if (e < 0)
	{
		e = -e;
	}
	if (e == 0)
	{
		return 1;
	}
	if (e == 1)
	{
		return b;
	}
	double res = power(b, e >>1);
	res *= res;
	if (e & 0x1)
	{
		res = res*b;
	}
	
	return res;
}
int main()
{
	int a, b;
	cin >> a >> b;
	double res=power(a,b);
	if (b < 0)
	{
		res = 1 / res;
	}
	cout << res << endl;
	system("pause");
}


posted @ 2017-03-07 23:33  乐天的java  阅读(67)  评论(0)    收藏  举报