diff options
| author | Lubos Kolouch <lubos@kolouch.net> | 2023-04-16 15:24:13 +0200 |
|---|---|---|
| committer | Lubos Kolouch <lubos@kolouch.net> | 2023-04-16 15:24:13 +0200 |
| commit | 8091d154c159948b012ce9728cbd8942ea3d148c (patch) | |
| tree | 11224395d1559dd0e7df4e865fbf0c132fd16a10 /challenge-059/lubos-kolouch/python/ch-2.py | |
| parent | fc7f30eaf4f1b81354ea7a10b3240efccf28a084 (diff) | |
| download | perlweeklychallenge-club-8091d154c159948b012ce9728cbd8942ea3d148c.tar.gz perlweeklychallenge-club-8091d154c159948b012ce9728cbd8942ea3d148c.tar.bz2 perlweeklychallenge-club-8091d154c159948b012ce9728cbd8942ea3d148c.zip | |
Challenge 057 059 LK Perl Python
Diffstat (limited to 'challenge-059/lubos-kolouch/python/ch-2.py')
| -rw-r--r-- | challenge-059/lubos-kolouch/python/ch-2.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/challenge-059/lubos-kolouch/python/ch-2.py b/challenge-059/lubos-kolouch/python/ch-2.py new file mode 100644 index 0000000000..f482a546d6 --- /dev/null +++ b/challenge-059/lubos-kolouch/python/ch-2.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from typing import List + + +def count_different_bits(a: int, b: int) -> int: + count = 0 + while a > 0 or b > 0: + count += (a % 2) ^ (b % 2) + a >>= 1 + b >>= 1 + return count + +def sum_different_bits(numbers: List[int]) -> int: + total = 0 + for i in range(len(numbers)): + for j in range(i+1, len(numbers)): + total += count_different_bits(numbers[i], numbers[j]) + return total + +if __name__ == "__main__": + input_list = [2, 3, 4] + result = sum_different_bits(input_list) + print(result) |
