BME Villamosmérnöki és Informatikai Kar
Műszaki informatika szak
Nappali tagozat
2004/2005. tanév, őszi félév

Deklaratív programozás

1. SML kis házi feladat

2004. október 15.

A kis házi feladat beadása nem kötelező.

A feladat

Dadogónak nevezünk egy jelsorozatot, ha a hossza páros szám (2n), és az első n eleme megegyezik a hátsó n elemével. Például a 10311031 sorozat dadogó, de a 101 sorozat nem dadogó.

Írjon olyan SML-függvényt dadogo néven, amelynek eredménye az a legkisebb b ≥ 2 természetes szám, amelyre az a szám b alapú számrendszerben felírt alakja (vezető nullákat nem engedünk meg) egy dadogó jelsorozat.

(* dadogo : int -> int 
   dadogo a = b, ahol b (>=2) az a legkisebb természetes szám,
             amelyre a b alapú számrendszerben felírt a szám
             dadogó jelsorozatot ad eredményül
*)

Példák

    dadogo 4 = 3
    dadogo 10 = 2
    dadogo 8 = 3
    dadogo 5 = 4
    dadogo 6211 = 6210
    dadogo 123456789 = 11408

Törekedjen arra, hogy a számítások során ne használjon az adott a számnál nagyobb számokat!

A feladat megoldása során nem feltétlenül szükséges jobbrekurziót használnia.

Beadás, tudnivalók

A programot az Elektronikus Tanársegéd segítségével Weben keresztül lehet beadni, a HF beadás menüpont alatt. Ez az első SML kis házi feladat, ezért khf-ml1.sml néven kell beküldeni a megoldást. A névben meg kell különböztetni a kis- és nagybetűket.

A program készülhet MS Windows alatt is, de Linux alatt is működnie kell. A beadási határidő október 29., péntek, 24:00.

A vizsgaosztályzat megállapításakor a határidőre beadott, helyesen megoldott kis házi feladatért plusz 1 pont jár (a 100 pontból).