Any good engineer knows there is no "best" solution, only tradeoffs.
Save space.
def even_flip_flop(number):
even = True
for _ in range(number):
even = not even
return even
Ditto. Sure, this overflows the stack, but you look cool doing it. def even_recursive(number):
return True if number == 0 else not even_recursive(number - 1)
Save time. Just buy more RAM. table = [True, False] * 1000 # adjust to your needs
def even_lookup(number):
return table[number]
You can combine the second and third strategies to hit the sweet spot of time and space.