// Scanner in = new Scanner( System.in );
String romertall = "MCMLIV";
System.out.println( "Oppgi romertall: " );
// romertall = in.next();
int bufor = 0; //inicjalizacja bufora
int desimaltallBefore = 0; //rezerwacja na poprzednią wartoś
for( int i = 0; i < romertall.length(); i++ )
{
char result = romertall.charAt( i ); //Twoja metoda
int desimaltall = romertallTegnVerdi( result ); //Twoja metoda
bufor += desimaltall; //Zawsze dodajes do bufora aktualną cyfrę rzymską
if( desimaltallBefore < desimaltall ) //Jeśli poprzednia jest mniejsza niż aktualna
{
bufor -= 2 * desimaltallBefore; //Odejmujesz 2razy od bufora
}
desimaltallBefore = desimaltall; //przepisujesz z aktualną wartoś do poprzedniej i jedziesz kolejną pętlę
System.out.println( bufor );
}
}
Zakomentowałem linię wpisywania daty. Algorytm może nie najszczęśliwszy, ale działa. Pamiętaj, że to jak Ty rozumiesz zagadnienie nie oznacza, że komputer musi robić to DOKŁADNIE tak samo :).
Jeśli chodzi o tworzenie takich prostych algorytmów polecam wziąć kartkę i długopis, WYŁĄCZYĆ KOMPUTER i rysować tak długo aż znajdziesz odpowiedź. Rozpisujesz sobie co po kolei ma się stać się z Twoim buforem, a później tłumaczysz całą taką sekwencje na instrukcje if/for/while.