Številske domine

Številske domine

Avtor: Deni Srebrnič

Opis problema

V tekstovni datoteki je zapisanih ducat pozitivnih celih števil.Poišči najdaljša zaporedje, ki ga lahko sestavimo iz teh števil. Dve števili v zaporedju sta lahko sosednji, če si nista tuji. Tako sta lahko zaporedni števili 12 in 18, ne pa tudi 15 in 22.

Vnesi ime datoteke: podatki.txt

Najdaljšo kačo sestavljajo števila: 12, 15, 110, 33

Razlaga postopka

Za rešitevn naloge sem uporabil 3 metode.

  1. metoda za branje iz datoteke
  2. metoda GCD (metoda, ki vrne največji skupni delitelj)
  3. metoda za iskanje najdaljšega zaporedje

Metoda za branje iz datoteke

Naloga zahteva, da moramo številke prebrati iz datoteke, zato prva metoda prebere datoteko in vrne številke v obliki številske tabele. Če so v datoteki drugi znaki ali pa števila, ki ne ustrezajo pogojem naloge, metoda sproži izjemo.

Metoda GCD

Metoda GCD vrne največji skupni delitelj dveh števil in tako preverja, če sta si števili tuji. Pri tej metodi gledamo ostanke. Ko je ostanek enak 0, dobimo število pri katerem je ta ostanek enak 0. Če to število ni 1, števili si nista tuji.

Metoda za iskanje najdaljšega zaporedja

Metoda išče najdaljši seznam sosednjih ne tujih števil. Metoda sprejme za parameter številsko tabelo in vrne številski seznam. Sestavljena je tako, da si najprej izberemo prvi člen v številski tabeli in ga shranimo v trenutni seznam. Sedaj je trenutni seznam z enim elementom. Ustvarimo zanko po trenutnem seznamu. Če dobimo tako število, ki temu številu v trenutnem seznamu ni tuje, potem to število dodamo v seznam. Sedaj gledamo drugi element v seznamu. Če spet dobimo tako število, ki temu številu v trenutnem seznamu ni tuje, ga dodamo. Ko v seznam ne dodamo nobenega števila več, se zanka po trenutnem seznamu ustavi. Tako dobimo najdaljši seznam, kjer je prvi člen tega seznama kar prvi člen številske tabele. Nato izberemo še ostale elemente številske tabele za prvi člen seznama. Vsakič ko zgradimo nov seznam, ga primerjamo z najdaljšim do tedaj.

Testni primeri

  • V datoteki imamo zapisana naslednja števila: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12. Tuja števila so števila, ki med seboj nimata nobenega skupnega števila razen 1. Število 1 pa je tuje število vsakemu celemu številu. Zato v tem primeru lahko dokaj hitro opazimo katera števila bojo v najdaljšem seznamu. To so števila (števila niso v pravilnem zaporedju) 2, 3, 4, 5, 6, 8, 9, 10, 12. Program nam vrne pravilen rezultat v pravilnem zaporedju.
  • V datoteko napišemo ista števila brez 1. V datoteki je torej zapisanih manj kot 12 števil. Program sproži izjemo, saj v datoteki ni zapisanih ducat števil. V besedilu naloge imamo zapisano tudi, da so števila lahko samo pozitivna in cela. Če na primer v datoteko zapišemo negativna števila ali število nič, se ravno tako v programu sproži izjema. Izjema pa se seveda sproži, tudi ko imamo v datoteki kakšen neprimeren znak ali decimalno število.

Filmček - Testni primeri

0%
0%