Matura informatyka zbiór zadań. Zadanie 66 - Trójki liczb.

Kliknij i wspomóż mnie :)

Python

Wstęp

Arkusz z zadaniem znajdziesz tutaj:

Matura_Zbiór_zadań_Informatyka

Repozytorium z danymi i rozwiązaniem:

Github

W pliku trojki.txt w oddzielnych wierszach znajduje się 1000 trójek liczb naturalnych z przedziału od 1 do 550000000. W każdym wierszu są umieszczone trzy liczby rozdzielone pojedynczymi odstępami.

Odczytywanie danych

Dane odczytujemy z pliku. Za pomocą metody split() z danych rozdzielonych spacją tworzymy tablicę trójelementową.

Każda z tablic reprezentuję jedną trójkę z danej linii. Wszystkie trójki przechowuje tablica trios.

Suma cyfr

Kolejno tworzymy tablice cyfr dla dwóch liczb z trójki.

Jeżeli suma cyfr z tablic spełnia warunek to wypisujemy całą trójkę.

Liczby pierwsze

Wypisz wszystkie wiersze z pliku trojki.txt zawierające takie trzy liczby a, b, c, w których a i b są liczbami pierwszymi oraz c = a · b.

Nasze liczby przechowywane są jako ciągi tekstowe, więc warto na początku je zarzutować na int.

Do sprawdzenia wykorzystujemy najprostszy algorytm na liczbę pierwszą. Później zostaje już tylko sprawdzenie warunków i wypisanie trójki.

Trójkąt prostokątny

Wypisz z pliku trojki.txt wszystkie pary sąsiadujących ze sobą wierszy, takie że liczby w tych wierszach są długościami boków trójkątów prostokątnych.

Na początku całą trójkę rzutujemy na int. W funkcji isSquareTriangle sprawdzamy warunek trójkąta prostokątnego za pomocą Twierdzenia Pitagorasa.

Warto zauważyć, że przeciwprostokątną znajdujemy za pomocą funkcji max(). Potęgę uzyskujemy funkcją pow()

Ciąg trójkątny

Podaj, ile jest w pliku trojki.txt wierszy, w których znajdują się liczby reprezentujące długości boków trójkąta. Ciąg wierszy nazywamy trójkątnym, jeśli liczby w każdym wierszu reprezentują długości boków trójkąta. Podaj długość najdłuższego ciągu trójkątnego w pliku.

W tym przykładzie zliczamy wystąpienia trójkąta z wykorzystaniem funkcji isTriangle(). Funkcja ta jest podobna do tej na trójkąt prostokątny jedynie zmieniony jest warunek końcowy.

Trójkąt istnieje wtedy, kiedy bok tego trójkąta jest mniejszy od sumy pozostałych.

Wystąpienie trójkąta jest reprezentowane jedynką w tablicy sequences. Funkcja findLongestSequence() wyszukuje jaki jest najdłuższy ciąg jedynek.

Teraz już pozostaje wywołać nasz kod:

Dziękuję Ci za przeczytanie tego materiału 😀 Jeżeli spodobało Ci się to o czym piszę, możesz sprawdzić więcej materiałów na blogu lub udostępnić znajomym. Będzie mi bardzo miło 😊

O mnie

Jestem młodym programistą, który dumnie dzierży wiele pasji takich jak bieganie czy piwowarstwo domowe. Jedną z nich jest także programowanie i o tym właśnie zamierzam tutaj pisać.

Zobacz więcej

Najnowsze posty

Kliknij i wspomóż mnie :)

Zostańmy w kontakcie

* Wymagane
Kliknij i wspomóż mnie :)
shop
Otwórz Sklep Play

Zachęcam Cię do odwiedzenia mojej strony na Google Play store i sprawdzenia wszystkich moich aplikacji.