2.2 Zera funkcji F dla p = 2

Matura próbna grudzień 2024 - Matura z informatyki: arkusze krok po kroku (Python)

Zadanie 2.2 (2 pkt): największe \( x < 100 \), dla którego \( F(x, p) = 0 \). Wynik \( F \) to suma nieparzystych cyfr minus suma parzystych, więc zero wychodzi, gdy obie sumy są równe. Program wypisuje takie liczby dla \( p = 2 \) z zapisem dwójkowym: cyfra 0 niczego nie zmienia, a każda jedynka dodaje 1, więc dla \( p = 2 \) zero daje tylko \( x = 0 \).

calls = 0


def F(x, p):
    global calls
    calls = calls + 1  # licznik wywołań, także pierwszego
    if x == 0:
        return 0
    c = x % p  # ostatnia cyfra x w systemie o podstawie p
    if c % 2 == 1:
        return F(x // p, p) + c
    return F(x // p, p) - c


for x in range(100):
    if F(x, 2) == 0:
        print(x, bin(x)[2:])

Ł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.