Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #/usr/bin/env python3
- # coding: utf-8
- a = [1, 2, 3, 4, -5, 6, -7, -8] # even count = 4, odd count = 4
- def odd_count(arr):
- """
- Идея - просто прибавлять модуль остатка от деления на 2, так как
- у нечетных чисел он всегда будет равен 1, а у четных - 0.
- """
- count = 0
- for n in arr:
- count += abs(n % 2)
- return count
- def even_count(arr):
- """
- Здесь концепция схожа с той, что исползуется в odd_count(), но теперь
- нам нужно "инвертировать" остаток, то есть если он получился 0, то сделать
- его 1 и наоборот.
- """
- count = 0
- for n in arr:
- remainder = abs(n % 2)
- # если n - четное, то ((n % 2) + 1) % 2 = (0 + 1) % 2 = 1,
- # иначе ((n % 2) + 1) % 2 = (1 + 1) % 2 = 0.
- count += (remainder + 1) % 2
- return count
- print(odd_count(a))
- print(even_count(a))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement