Matura informatyka 2022 czerwiec (poziom rozszerzony) - zadanie 4.2

Treść zadania:
Dla każdej liczby z pliku liczby.txt oblicz wartość bezwzględną różnicy tej liczby i jej odbicia.
Wyznacz taką liczbę n, dla której wartość bezwzględna różnicy tej liczby i jej odbicia jest największa. Podaj tę liczbę oraz wartość bezwzględną różnicy tej liczby i jej odbicia.
W pliku liczby.txt jest tylko jedna taka liczba.
Dla pliku przyklad.txt odpowiedzią jest 741 594.
Rozwiązanie:
Z treści zadania wynika, że:
W pliku liczby.txt zapisano 100 nieparzystych liczb całkowitych z przedziału [10, 9999]. Liczby w pliku mogą się powtarzać.
minimalna liczba wynosi 10, więc można bezpiecznie założyć początkową wartość największej liczby i największej różnicy jako 0:
with open("dane/przyklad.txt", "r") as f:
nums = [int(num) for num in f.readlines()]
biggest_num = 0
biggest_diff = 0
Następnie przy pomocy prostej pętli obliczamy dla każdej liczby jej absolutną różnicę z jej odbiciem i wypisujemy wynik:
for num in nums:
reflection = int(str(num)[::-1])
diff = abs(num - reflection)
if diff > biggest_diff:
biggest_num = num
biggest_diff = diff
print(f"{biggest_num} {biggest_diff}")
Cały program:
with open("dane/liczby.txt", "r") as f:
nums = [int(num) for num in f.readlines()]
biggest_num = 0
biggest_diff = 0
for num in nums:
reflection = int(str(num)[::-1])
diff = abs(num - reflection)
if diff > biggest_diff:
biggest_num = num
biggest_diff = diff
print(f"{biggest_num} {biggest_diff}")
Wynik:
1129 8082
Źródło: https://arkusze.pl/matura-informatyka-2022-czerwiec-poziom-rozszerzony/




