I romerriket brukte man bokstavene M, D, C, L, X, V og I til å representere tall, som angitt i tabellen under. En rekke med slike bokstaver representerte summen av bokstavverdiene – for eksempel ville strengen MLX vært tallet 1060. Hvis en bokstav med en lavere verdi kommer før en bokstav med høyere verdi, skal den laveste verdien i stedet trekkes fra den høyeste verdien – for eksempel er strengen IV tallet 4, strengen XC verdien 90, og strengen MCMXCIX verdien 1999.

Lag en funksjon som konverter fra et romertall til tallverdien det representerer. Du kan anta at konverteringsfunksjonen fra_romersiffer er tilgjengelig for å konvertere fra en enkelt romerbokstav til tilsvarende tallverdi.

Utdelt kode

fra_romersiffer.m
function tall = fra_romersiffer(romersiffer)
    switch romersiffer
        case 'I'
            tall = 1;
        case 'V'
            tall = 5;
        case 'X'
            tall = 10;
        case 'L'
            tall = 50;
        case 'C'
            tall = 100;
        case 'D'
            tall = 500;
        case 'M'
            tall = 1000;
        otherwise
            error('Ugyldig romersiffer');
    end
end 

 

Videoforklaring (11:37)

Løsningsforslag

fra_romertall.m
function retur = fra_romertall(romertall)
    retur = 0;
    for i = 1:length(romertall)
        verdi = fra_romersiffer(romertall(i));
        if i < length(romertall) && verdi < fra_romersiffer(romertall(i+1))
            retur = retur - verdi;
        else
            retur = retur + verdi;
        end
    end
end
  • No labels