mirror of
https://github.com/TheAlgorithms/Ruby
synced 2024-12-26 21:58:56 +01:00
61 lines
956 B
Ruby
61 lines
956 B
Ruby
|
# Arrays - Power of 2
|
||
|
#
|
||
|
# Given an integer n, return true if it is a power of two. Otherwise, return false.
|
||
|
#
|
||
|
# An integer n is a power of two, if there exists an integer x such that n == 2^x.
|
||
|
#
|
||
|
# Example 1:
|
||
|
# Input: n = 1
|
||
|
# Output: true
|
||
|
# Explanation: 2^0 = 1
|
||
|
#
|
||
|
# Example 2:
|
||
|
# Input: n = 16
|
||
|
# Output: true
|
||
|
# Explanation: 2^4 = 16
|
||
|
#
|
||
|
# Example 3:
|
||
|
# Input: n = 3
|
||
|
# Output: false
|
||
|
#
|
||
|
# Example 4:
|
||
|
# Input: n = 4
|
||
|
# Output: true
|
||
|
#
|
||
|
# Example 5:
|
||
|
# Input: n = 5
|
||
|
# Output: false
|
||
|
#
|
||
|
# Constraints: -231 <= n <= 231 - 1
|
||
|
# @param {Integer} n
|
||
|
# @return {Boolean}
|
||
|
#
|
||
|
# Approach 1: Recursion
|
||
|
#
|
||
|
# Time Complexity: O(1)
|
||
|
#
|
||
|
def is_power_of_two(n)
|
||
|
if n == 1
|
||
|
return true
|
||
|
elsif n%2 == 0
|
||
|
is_power_of_two(n/2)
|
||
|
else
|
||
|
return false
|
||
|
end
|
||
|
end
|
||
|
|
||
|
n = 1
|
||
|
# Output: true
|
||
|
puts is_power_of_two(n)
|
||
|
n = 16
|
||
|
# Output: true
|
||
|
puts is_power_of_two(n)
|
||
|
n = 3
|
||
|
# Output: false
|
||
|
puts is_power_of_two(n)
|
||
|
n = 4
|
||
|
# Output: true
|
||
|
puts is_power_of_two(n)
|
||
|
n = 5
|
||
|
# Output: false
|
||
|
puts is_power_of_two(n)
|