aboutsummaryrefslogtreecommitdiff
path: root/challenge-059/lubos-kolouch/python/ch-2.py
diff options
context:
space:
mode:
author冯昶 <fengchang@novel-supertv.com>2023-04-17 16:06:26 +0800
committer冯昶 <fengchang@novel-supertv.com>2023-04-17 16:06:26 +0800
commit64b7c608210e55b5564fe44df68d1eacf6d25969 (patch)
tree685237e70e0a1f8d26440eec4d831853acb2c1c3 /challenge-059/lubos-kolouch/python/ch-2.py
parente2c8b4bec3b682df8597f57ec627508a07582d31 (diff)
parent42228ce601fe37769faacc051f35f74b9566bb26 (diff)
downloadperlweeklychallenge-club-64b7c608210e55b5564fe44df68d1eacf6d25969.tar.gz
perlweeklychallenge-club-64b7c608210e55b5564fe44df68d1eacf6d25969.tar.bz2
perlweeklychallenge-club-64b7c608210e55b5564fe44df68d1eacf6d25969.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-059/lubos-kolouch/python/ch-2.py')
-rw-r--r--challenge-059/lubos-kolouch/python/ch-2.py25
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)