diff --git a/DivideAndConquer/BinaryExponentiation.java b/DivideAndConquer/BinaryExponentiation.java new file mode 100644 index 000000000..b5844b8d9 --- /dev/null +++ b/DivideAndConquer/BinaryExponentiation.java @@ -0,0 +1,16 @@ +public class BinaryExponentiation { + + public static void main(String args[]) { + System.out.println(calculatePower(2, 30)); + } + + // Function to calculate x^y + // Time Complexity: O(logn) + public static long calculatePower(long x, long y) { + if (y == 0) return 1; + long val = calculatePower(x, y / 2); + val *= val; + if (y % 2 == 1) val *= x; + return val; + } +}