桑海

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
#include<iostream>
using namespace std;

int power(int x, int n)
{//分治法,时间复杂度:lgn
    if(x == 0)
    {
        if(n == 0)
            cout << "WRONG INPUT: SIGNIGICANT!!!" << endl;
        return 0;
    }
    if(n == 0)
        return 1;
    int sum = 1;
    int t = power(x, n/2);
    sum = t*t;
    if(n % 2)
        sum *= x;
    return sum;
}

int main()
{
    int x, n;
    while(cin >> x >> n, n != 0 || x != 0)
    {
        cout << x << " to the " << n << " is : " << power(x, n) << endl;
    }
    return 0;
}
posted on 2012-12-09 14:02  桑海  阅读(286)  评论(0编辑  收藏  举报