mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-05 16:26:47 +08:00
added algo for checking the number is power of four or not (#1360)
* added algo for checking the number is power of four or not * Update IsPowerofFour.js * Update IsPowerofFour.js * fix code style * used proper JSDoc comment and fixed test issues * fixed test case issue --------- Co-authored-by: madhuredra <madhuredra.tiwari@zemosolabs.com>
This commit is contained in:

committed by
GitHub

parent
6ad5b9c2b1
commit
4fe8a67ea6
17
Bit-Manipulation/IsPowerofFour.js
Normal file
17
Bit-Manipulation/IsPowerofFour.js
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* @author : dev-madhurendra
|
||||
* Checks whether the given number is a power of four or not.
|
||||
*
|
||||
* A number is considered a power of four if and only if there is a single '1' bit in its binary representation,
|
||||
* and that '1' bit is at the first position, followed by an even number of '0' bits.
|
||||
*
|
||||
* @param {number} n - The input number to check.
|
||||
* @returns {boolean} True if the number is a power of four, false otherwise.
|
||||
*
|
||||
* @example
|
||||
* const result = isPowerOfFour(16); // Returns true (16 is 4^2)
|
||||
* const result2 = isPowerOfFour(5); // Returns false (5 is not a power of four)
|
||||
*/
|
||||
const isPowerOfFour = (n) => ((n > 0) && ((n & n - 1) === 0) && (n % 3 === 1))
|
||||
|
||||
export { isPowerOfFour }
|
14
Bit-Manipulation/test/IsPowerOfFour.test.js
Normal file
14
Bit-Manipulation/test/IsPowerOfFour.test.js
Normal file
@ -0,0 +1,14 @@
|
||||
import { isPowerOfFour } from '../IsPowerofFour'
|
||||
|
||||
describe('IsPowerOfFour', () => {
|
||||
it.each([
|
||||
[0, false],
|
||||
[4, true],
|
||||
[16, true],
|
||||
[12, false],
|
||||
[64, true],
|
||||
[-64, false]
|
||||
])('should return the number is power of four or not', (n, expected) => {
|
||||
expect(isPowerOfFour(n)).toBe(expected)
|
||||
})
|
||||
})
|
Reference in New Issue
Block a user