Az I/S. 19. feladat (2017. szeptember) |
I/S. 19. Keressük meg azt a legkisebb \(\displaystyle b\) nevezőjű \(\displaystyle \frac{a}{b}\) törtet, amelynek \(\displaystyle t\) tizedes jegyre kerekített értéke megegyezik egy \(\displaystyle t\) tizedes jegyet tartalmazó \(\displaystyle r\) tizedes törttel.
A feladatot megoldó program olvassa be a standard bemenetről \(\displaystyle r\) és \(\displaystyle t\) szóközzel elválasztott értékét (tizedesvessző helyett pontot használjunk), majd írja a standard kimenet egyetlen sorába szóközzel elválasztva \(\displaystyle a\) és \(\displaystyle b\) egészeket.
Példák:
Bemenet | Kimenet |
3.141592653 9 | 103993 33102 |
2017.0901 4 | 223897 111 |
1.2345678901234 13 | 2743458 2222201 |
Korlátok: az \(\displaystyle r\) pozitív szám \(\displaystyle e\) egész és \(\displaystyle t\) tizedes jegyet tartalmaz \(\displaystyle (1 \le e,t \le 14)\), \(\displaystyle (1 \le e+t \le 15)\).
Értékelés: a megoldás lényegét leíró dokumentáció 1 pontot ér. További 9 pont kapható arra a programra, amely a korlátoknak megfelelő bemenetekre helyes kimenetet ad 1 másodperc futásidő alatt. Részpontszám kapható arra programra, amely csak kisebb \(\displaystyle e\), \(\displaystyle t\) értékek esetén ad helyes eredményt 1 másodpercen belül.
Beküldendő egy is19.zip tömörített állományban a megoldást leíró dokumentáció és a program forráskódja.
(10 pont)
A beküldési határidő 2017. október 10-én LEJÁRT.
A feladattal lényegében ekvivalens példa volt az első S feladat – de ezt csak a kitűzés után vettük észre. Az S.1. feladat megoldását a beküldési határidőig elrejtettük a honlapon. Most újra elérhető, érdemes ránézni: S.1. feladat.
Sokféle megoldás érkezett, mintamegoldásként is több, lényegesen eltérű programot és dokumentációt adunk közre.
Az első Noszály Áron 10. osztályos, debreceni versenyző munkája: is19na.pdf, is19na.cpp.
A második megoldás Gáspár Attila 11. osztályos, miskolci versenyző munkája (a lánctörtekkel kapcsolatos S.1. leírás alapján érthető a rövid dokumentáció): IS19ga.txt, IS19ga.cpp.
A harmadik megoldás Csertán András 11. osztályos, nagykanizsai versenyző munkája. A dokumentáció
1-től kezdve lineárisan keressünk olyan b nevezőt, amihez van olyan a számláló, melyre \(\displaystyle \frac{a}{b}=r\). Egy adott \(\displaystyle b\)-hez csak \(\displaystyle b*r\) egészre kerekített értéke lehet az \(\displaystyle a\). Az \(\displaystyle \frac{a}{b}\) hányados akkor jó, ha \(\displaystyle \frac{a}{b} \cdot 10^t\) egészre kerekített értéke egyenlő \(\displaystyle r \cdot 10^t\) egészre kerekített értékével. (Így megtudjuk, hogy \(\displaystyle t\) tizedes jegyre kerekítve megegyezik-e \(\displaystyle \frac{a}{b}\) és \(\displaystyle r\).)
A program: is19csa.cpp
Statisztika:
18 dolgozat érkezett. 10 pontot kapott: Csertán András, Gáspár Attila, Horváth Botond István, Janzer Orsolya Lili, Noszály Áron, Tóth 827 Balázs. 9 pontot kapott: Busa 423 Máté, Csala Bálint, Csala Péter, Horcsin Bálint, Kovács 732 Dániel, Vári-Kakas Andor. 8 pontot kapott: 1 versenyző. 7 pontot kapott: 1 versenyző. 6 pontot kapott: 1 versenyző. 5 pontot kapott: 1 versenyző. 0 pontot kapott: 2 versenyző.
A KöMaL 2017. szeptemberi informatika feladatai