Created
March 11, 2020 07:12
-
-
Save userimack/9fb7c859a22edbfbbcd434a97cfdc66e to your computer and use it in GitHub Desktop.
Different solutions for sum of powers of 2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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