Kirjautuminen

Haku

Tehtävät

Kilpailu

Murra koodi!
Lue ja osallistu!
Seuraava vihje 29.1.
Voittajia 1 + yrittäjiä 1

Keskustelu: Koodit: Java: Roomalaiset luvut lauseke

koodaaja [06.01.2022 00:25:13]

#

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);
 }


}

Vastaus

Muista lukea kirjoitusohjeet.
Tietoa sivustosta