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