Tämä esimerkki muuttaa luvun roomalaiseksi ja muodostaa siitä lausekkeen. Ideana on aloittaa ensin tarkastaminen suuremmista luvuista ja tätä jatketaan niin kauan kunnes on päästy nollaan.
import java.util.Scanner; public class RoomalainenNumerot { public static void main(String[] args){ Scanner syote = new Scanner(System.in); int luku = 0; //Muutetaan lukuyksiköt roomalaisiksi ja muodostetaan lauseke. String[] osat = {"C","XC","L","XL","X","IX","V","IV","I"}; int[] lukuOsat = {100,90,50,40,10,9,5,4,1}; int indeksi = 0; int merkki = 97; String tulos = ""; System.out.println("Anna luku"); luku = syote.nextInt(); //Siirrytään taulukossa niin kauan eteenpäin kunnes nolla on saavutettu. while (luku > 0){ if (luku >= lukuOsat[indeksi]){ luku -= lukuOsat[indeksi]; tulos += (char)(merkki)+ "^"+osat[indeksi]; merkki++; if (luku > 0){ //Lauseke jatkuu vielä. tulos += " + "; } } else { //Seuraava yksikkö. indeksi++; } } System.out.println("Tulos: " + tulos); } }
Aihe on jo aika vanha, joten et voi enää vastata siihen.