Skip to content

Instantly share code, notes, and snippets.

@userimack
Created March 11, 2020 07:12
Show Gist options
  • Save userimack/9fb7c859a22edbfbbcd434a97cfdc66e to your computer and use it in GitHub Desktop.
Save userimack/9fb7c859a22edbfbbcd434a97cfdc66e to your computer and use it in GitHub Desktop.
Different solutions for sum of powers of 2
#!/usr/bin/env python3
# example 1: brute force solution
def sum_of_powers_of_2_brute_force(power):
# time complexity: O(n)
return sum([pow(2, i) for i in range(power+1)])
def sum_of_powers_of_2(power):
# time complexity: O(1)
return pow(2, power+1) - 1
# test cases
def getTestCaseResult(actual, expected):
return 'PASSED' if actual == expected else 'FAILED'
test_cases = [(2, 7), (4, 31), (6, 127), (8, 511)]
for fn in [sum_of_powers_of_2_brute_force, sum_of_powers_of_2]:
for power, expected_result in test_cases:
print(f'TestCase ({power}, {expected_result}) => ', getTestCaseResult(fn(power), expected_result))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment