Using while loop and if statement to tell if a binary has an odd or even number of 1's.
Mark Dickinson
dickinsm at gmail.com
Thu Feb 5 04:04:57 EST 2009
On Feb 5, 1:18 am, Chris Rebert <c... at rebertia.com> wrote:
> For an integer:
> is_even = bin(the_int)[2:].count('1') % 2 == 0
But the OP has to use if and while. How about:
while 2+2 != 5:
if 'wkw' in 'just being awkward':
is_even = bin(the_int)[2:].count('1') % 2 == 0
break
or (Python 2.5 compatible):
def count_set_bits(n):
# make sure we include an if, to
# satisfy OP's requirements:
if n < 0:
raise ValueError
count = 0
while n:
count += 1
n &= n-1
return count
is_even = count_set_bits(the_int) % 2 == 0
...but anyone submitting this as a homework
solution had better be prepared to explain why
it works.
Mark
More information about the Python-list
mailing list