2.1 Bloki w zapisie binarnym
Matura maj 2023 - Matura z informatyki: arkusze krok po kroku (Python)
**Zadanie 2. Liczby binarne.** Blok to najdłuższy ciąg jednakowych cyfr w zapisie binarnym: 111110000110111 ma pięć bloków (11111, 0000, 11, 0, 111). Arkusz w zadaniu 2.1 zabrania funkcji zamiany systemów, więc cyfry binarne zdejmuje się od końca: `n % 2` to ostatnia cyfra, `n // 2` ją usuwa. Nowy blok zaczyna się tam, gdzie cyfra jest inna niż poprzednia. Dla 67 (1000011) wynik to 3, dla 245 (11110101) to 5.
def blocks(n):
b = 1
previous = n % 2 # ostatnia cyfra zapisu binarnego
n = n // 2
while n > 0:
digit = n % 2
if digit != previous: # inna cyfra niż poprzednia: zaczyna się nowy blok
b = b + 1
previous = digit
n = n // 2
return b
for n in [67, 245]:
print(n, bin(n)[2:], blocks(n))Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.
Wszystkie lekcje kursu Matura z informatyki: arkusze krok po kroku·Zaloguj się, aby zapisać postęp na koncie.