Binnen het ISBN-10 (International Standard Book Numbering) systeem dat tot eind 2006 gebruikt werd, kreeg elk boek een unieke code toegewezen die bestaat uit tien cijfers. De eerste negen daarvan geven informatie over het boek zelf, terwijl het laatste louter een controlecijfer is dat dient om foutieve ISBN-10 codes te detecteren.
Als $$x_1, \ldots, x_9$$ de eerste negen cijfers van een ISBN-10 code voorstellen, dan wordt het controlecijfer $$x_{10}$$ als volgt berekend: \[x_{10} = (x_1+ 2x_2+ 3x_3+ 4x_4+ 5x_5+ 6x_6+ 7x_7+ 8x_8+ 9x_9)\!\!\!\!\mod{11}\] Het controlecijfer $$x_{10}$$ kan m.a.w. de waarden 0 tot en met 10 aannemen. Als het controlecijfer gelijk is aan tien, dan wordt dit in de ISBN-10 code genoteerd als de hoofdletter X. Op die manier wordt het controlecijfer altijd door één enkel karakter voorgesteld.
Lees een reeks ISBN-10 codes in en bepaal of ze corresponderen met geldige ISBN-10 codes. Zorg ervoor dat er geen overbodige herhaling van broncodefragmenten voorkomt in je oplossing (code duplication1, DRY2).
Een reeks ISBN-10 codes, elk op een afzonderlijke regel. De reeks wordt afgesloten door een regel die enkel het woord stop bevat.
Voor elke ISBN-10 code één regel die het woord OK bevat als de ISBN-10 code geldig is of die het woord FOUT bevat als de ISBN-10 code ongeldig is.
Invoer:
9971502100
9971502108
stop
Uitvoer:
OK
FOUT
In onderstaande video legt Pythia uit hoe je deze opgave kunt aanpakken. Bekijk deze video als opstapje naar het oplossen van de oefeningen over strings3.