Citadel interview question

To write down code for x^n in O(logn) time.

Interview Answers

Anonymous

20 Aug 2012

slightly optimized one: template T power(T base, unsigned int n) { if (0 == n) return 1; if (1 == n) return base; T tmp = power(base, n / 2); tmp *= tmp; if (0 == n % 2) { return tmp; } return base * tmp; }

2

Anonymous

8 Oct 2013

def powlogn(x, n): if x == 0: return 1 elif x == 1: return x elif n%2: return x * powlogn(x*x, (n-1)/2) else: return powlogn(x*x, n/2)

Anonymous

12 Feb 2016

Use Intel compiler, it does it automatically.

Anonymous

27 Feb 2019

A^(2k)=A^k*A^k A^(2k+1)=(A^k)*(A^k)*A

Anonymous

23 Nov 2011

linear: A^8 = A*A*A*A*A*A*A*A log: A^8 = (A^4)*(A^4) A^4 = (A^2)*(A^2) A^2 = A*A

2

Anonymous

11 Feb 2012

int power(int x, unsigned int y) { int temp; if( y == 0) return 1; temp = power(x, y/2); if (y%2 == 0) return temp*temp; else return x*temp*temp; } Time Complexity of optimized solution: O(logn)