""" 1523.1 - Count Odd Numbers in an Interval Range - Solution 1 - Brute Force """
#####################################################################################
# Classes
#####################################################################################
class Solution:
"""Solution Class"""
def countOdds(self, low: int, high: int) -> int:
"""Count Odd Numbers Function"""
count = 0
for num in range(low, high + 1):
if num % 2 != 0:
count += 1
return count
#####################################################################################
# Functions
#####################################################################################
def testcase():
"""Test Function"""
print(Solution().countOdds(3, 7)) # Expected: 3
print(Solution().countOdds(8, 10)) # Expected: 1
print(Solution().countOdds(1, 1)) # Expected: 1
print(Solution().countOdds(2, 2)) # Expected: 0
#####################################################################################
# Main
#####################################################################################
if __name__ == "__main__":
testcase()
""" 1523.2 - Count Odd Numbers in an Interval Range - Solution 2 - Math """
#####################################################################################
# Classes
#####################################################################################
class Solution:
"""Solution Class"""
def countOdds(self, low: int, high: int) -> int:
"""Count Odd Numbers Function"""
# Number of odds from 0 to n is (n + 1) // 2
# Odds in [low, high] = odds(high) - odds(low - 1)
return (high + 1) // 2 - low // 2
#####################################################################################
# Functions
#####################################################################################
def testcase():
"""Test Function"""
print(Solution().countOdds(3, 7)) # Expected: 3
print(Solution().countOdds(8, 10)) # Expected: 1
print(Solution().countOdds(1, 1)) # Expected: 1
print(Solution().countOdds(2, 2)) # Expected: 0
#####################################################################################
# Main
#####################################################################################
if __name__ == "__main__":
testcase()