From f97cb54a2ebe301efaa65fea56227559ccc3a03d Mon Sep 17 00:00:00 2001 From: Darshan Trivedi <79049134+darshan-trivedi-10@users.noreply.github.com> Date: Thu, 13 Jan 2022 18:29:14 +0530 Subject: [PATCH] enh(CPlusPlus): add missing space to power-of-two maths (#667) Co-authored-by: Rahul Rajeev Pillai <66192267+Ashborn-SM@users.noreply.github.com> Co-authored-by: datshan-trivedi-10 --- algorithms/CPlusPlus/Maths/power-of-two.cpp | 36 ++++++++++++++------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/algorithms/CPlusPlus/Maths/power-of-two.cpp b/algorithms/CPlusPlus/Maths/power-of-two.cpp index d5218d60..4a290b41 100644 --- a/algorithms/CPlusPlus/Maths/power-of-two.cpp +++ b/algorithms/CPlusPlus/Maths/power-of-two.cpp @@ -1,27 +1,37 @@ #include using namespace std; -//function starts -bool isPowerOfTwo(const n) +// function starts +bool isPowerOfTwo(const int n) { - //declare a variable to know if n is a power of 2 or not + // declare a variable to know if n is a power of 2 or not long i = 1; - //at every iteration it will calcalute power of 2 starting from 1 + // at every iteration it will calcalute power of 2 starting from 1 while (i < n) { i = i * 2; } - //if n is the power of 2, i and n value will be same - //if they are same, it will return true, else it will return false + // if n is the power of 2, i and n value will be same + // if they are same, it will return true, else it will return false return i == n; } -//main starts +// Binary Method to check number is in power of two or not. +// Time Complexity of this method is O(1) +bool ispoweroftwo(const int n) +{ + // if number is in power of two it will give 0, otherwise it will not zero. + return n != 0 && (n & (n - 1)) == 0; +} + +// main starts int main() { int n; cin >> n; - cout << isPowerOfTwo(n); + cout << isPowerOfTwo(n) << endl; + // Check using Binary Method + cout << ispoweroftwo(n) << endl; return 0; } @@ -29,13 +39,15 @@ int main() Example 1: Input: n = 1 -Output:1 (true) -Explanation: 20 = 1 +Output:1 (true) +Explanation: 2^0 = 1 + Example 2: Input: n = 16 -Output:1 (true) -Explanation: 24 = 16 +Output:1 (true) +Explanation: 2^4 = 16 + Example 3: Input: n = 3