Hide

Problem C
Ord till tal

\includegraphics[width=8cm]{numbers.jpg}

Uppgiften består i att läsa in ett tal skrivet som ord, till exempel “åtta tusen sex hundra femtio sju”, och skriva ut motsvarande tal med siffror, i detta fall alltså 8657. Du kan förutsätta att talet inte understiger 1 och inte överstiger 999999999999. Vidare så är talet särskrivet (som visas av exemplet ovan och exemplen nedan), så att ett tal skrivs som en sekvens av ord separerade av mellanslag. De ord som kan förekomma är “ett”/“en” till och med “nitton”, samtliga tiotal (“tjugo” till och med “nittio”), samt orden “hundra”, “tusen”, “miljon”, “miljoner”, “miljard” och “miljarder”.

Du behöver inte ta hand om specialfall som “tolv hundra”; detta skrivs som “ett tusen två hundra”. Du behöver inte heller ta hand om förkortade versioner som “hundra elva”; detta skrivs som “ett hundra elva”.

Indata

Indata består av en rad av ord (strängar) enligt ovanstående beskrivning.

Utdata

Utdata ska bestå av ett heltal som är den numeriska representationen av indata-strängen.

Sample Input 1 Sample Output 1
åtta hundra åttio åtta
888
Sample Input 2 Sample Output 2
åtta miljoner åtta hundra åttio åtta tusen åtta
8888008
Sample Input 3 Sample Output 3
nio hundra nittio sju miljarder en miljon fem hundra fyrtio tre tusen ett hundra arton
997001543118

Please log in to submit a solution to this problem

Log in