//分治法
/*
1: devide
2: conquer
3: conbine
求x^n
当n是偶数时:
x^(n/2) * x^(n/2)
当n是奇数时:
x^((n-1)/2) * x^((n-1)/2) * x
利用递规,可以求出
*/
#include
using namespace std;
int main()
{
int x, n;
int f(int, int);
cout << "please input two integer number:" << endl;
cin >> x;
cin >> n;
int sum;
sum = f(x, n);
cout << "the result is " << sum << endl;
return 0;
}
int f(int x, int y)
{
if (y == 1)
return x;
else if (y % 2 == 0)
return f(x, y / 2)*f(x, y / 2);
else
return f(x, (y - 1) / 2) * f(x, (y - 1) / 2)*x;
}