Thursday, 9 July 2015

BINERY- EXPO

RECURSIVE IMPLEMENTATION:
int power(int x, unsigned int y)
{
    if( y == 0)
        return 1;
    else if (y%2 == 0)
        return power(x, y/2)*power(x, y/2);
    else
        return x*power(x, y/2)*power(x, y/2);
}

ITERATIVE IMPLEMENTATION:
1
2
3
4
5
6
7
8
9
10
11
12
long long int fastPower(long long base,long long power,long long M)
{
        long long result=1;
        while (power>0)
        {
                if (power%2==1)        
                        result = (result*base)%M;
                base = (base*base)%M;
                power/=2;
        }
        return result;
}

No comments:

Post a Comment