3.3 Różnica cyfr w pliku przykładowym

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

Zadanie 3.3 (3 pkt): z cyfr liczby największa minus najmniejsza możliwa liczba, porównana z samą liczbą. Arkusz: dla 3151 to \( 5311 - 1135 = 4176 \), a zera traktuje się jak inne cyfry, więc dla 2047 to \( 7420 - 0247 = 7173 \). `sorted(str(n))` daje cyfry rosnąco, złączone dają najmniejszą liczbę (zero z przodu znika przy `int`). Dla pliku przykładowego: 8 razy mniejsza, 12 razy większa, równej nie ma.

with open("liczby_przyklad.txt") as f:
    numbers = [int(line) for line in f]

# 3.3 cyfry posortowane: rosnąco = najmniejsza liczba (zera z przodu), malejąco = największa
def difference(n):
    digits = sorted(str(n))
    smallest = int("".join(digits))
    largest = int("".join(reversed(digits)))
    return largest - smallest


smaller = sum(1 for x in numbers if difference(x) < x)
larger = sum(1 for x in numbers if difference(x) > x)
equal = [x for x in numbers if difference(x) == x]

print("3.3", smaller, larger)
print("równe:", *equal)

print(difference(3151), difference(2047))

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