From 7a1c4b0d7d3bbb202a3a2ee8d430eb15290c0eeb Mon Sep 17 00:00:00 2001 From: Pranay Chauhan <52269813+PranayChauhan2516@users.noreply.github.com> Date: Tue, 5 Oct 2021 16:29:09 +0530 Subject: [PATCH] Add Binary Exponentiation (#2359) --- DivideAndConquer/BinaryExponentiation.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 DivideAndConquer/BinaryExponentiation.java 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; + } +}