Kirjautuminen

Haku

Tehtävät

Putkaposti: Lukujentasaaja

Kirjoittaja: Antti Laaksonen

Kiitokset tehtävästä: Pekka Karjalainen

Uolevi, entinen lukujenvihaaja, on käynyt raivonhallintaterapiassa ja oppinut hyväksymään joitakin lukuja. Hän pitää kuitenkin vain tasaisista luvuista. Tämä tarkoittaa lukuja, joiden numeroissa ei hypitä ylös ja alas. Uoleville kerrottiin, että kaikki luvut voidaan tasata kertomalla ne tarpeeksi suurella kokonaisluvulla, mutta Uolevi ei ole onnistunut tekemään tätä useissa tapauksissa.

Tehtävä

Tasainen luku tarkoittaa kokonaislukua, jonka numerot ovat joko nousevassa tai laskevassa järjestyksessä. Toisin sanoen luku kelpaa Uoleville, jos kaikille luvun peräkkäisille numeropareille a ja b pätee joko a <= b tai a >= b. Ehdon täytyy olla sama jokaiselle saman luvun numeroparille. Esimerkiksi luvut 1111, 1122, 113355, 998850, 66655522 ja 332 ovat tasaisia lukuja.

Luku 101 ei ole tasainen, mutta kertomalla luku 11:llä saadaan 1111, joka on tasainen luku. Luvun 131 taas voi tasata kertoimella 5, jolloin tulo on 655. Uolevi on onnistunut muuttamaan omin neuvoin nämä ja monta muutakin lukua tasaisiksi. Joskus tarvittava kerroin näyttää olevan kuitenkin hyvin suuri. Näistä vaikeista luvuista Uolevi on laatinut listan.

Tehtävään kuuluvat luvut ovat tiedostossa lukut.txt. Tiedoston alussa on tasattavien lukujen määrä, jonka jälkeen tulevat kaikki luvut. Arvostelussa jokaisesta oikeasta vastauksesta saa 10 pistettä, jos kerroin on pienin mahdollinen, ja 5 pistettä, jos kerroin tuottaa kyllä tasaisen luvun, mutta pienempikin olisi olemassa. Uolevi ei nimittäin haluaisi tehdä turhaa työtä lukuja kertoessaan.

Vastausohje

Jokaiselle riville tulee alkuperäinen luku, sopiva positiivinen kerroin ja tasainen luku.

Vastaus voisi näyttää seuraavalta:

101 11 1111
131 5 655
419 18 7542

Tästä vastauksesta saisi 25 pistettä, koska 419:lle on pienempi kerroin, nimittäin 419 * 3 = 1257. Tehtävässä ei kuitenkaan kysytä näitä lukuja, koska Uolevi laski ne jo itse.

Vastaukset

51 henkilöllä on tulos. Suluissa oleva luku tarkoittaa saavutettua pistemäärää.

Krisse7 (1620), VilleP (1620), Chiman (1620), FooBat (1620), BadSource (1620), Mr.Clark (1620), jlaire (1620), Grez (1620), Sisuaski (1620), Jaska (1620), Metabolix (1620), Konvehti (1620), Jhuunhym (1620), Hansen (1620), L2-K2 (1620), symbols (1620), Matti Holopainen (1620), Ruokauuni (1620), temu92 (1620), isashkar (1620), öppis (1620), zebraze (1620), lukujenVihaaja (1600), os (1550), KemXy (1530), Laakeri (1530), TapaniS (1530), tejeez (1510), Legu (1510), Deewiant (1510), Laitinen (1510), Seriffi (1510), JP_94 (1510), teemuho (1510), qalle (1510), Torgo (1470), Hirwi (1470), latemaani (1430), Ape (1400), Jalmari91 (1390), Juice (1350), HeadCheese (1340), Teuro (1210), HellRazor (1190), Andu (1125), Moiman (840), Touho (280), tkok (20), Salama (20), ilx (15), juha127 (10)

Kirjaudu sisään Ohjelmointiputkaan, niin voit lähettää vastauksen tehtävään.

Keskustelu

Katso myös Putkaposti 13: Lukujentasaaja.

Tietoa sivustosta